gpt4 book ai didi

mysql - 将大量数据从 SQL Server 复制到 MySQL

转载 作者:行者123 更新时间:2023-11-29 11:46:53 25 4
gpt4 key购买 nike

我对存储有大量数据的 SQL Server 数据库具有读取权限。每天晚上,我都会从该数据库的表中提取大约一百万行数据,并将其放入本地计算机上的 MySQL 数据库中,然后对数据进行分析。我当前复制此数据的方法是一个 Perl 脚本,它基本上执行以下操作:

(1) Connect to MySQL database
(2) Drop old table
(3) Create table.
(4) Get data from SQL Server DB.
(5) Put data on MySQL database using the following method:
while (@data = $sth->fetchrow_array()) {
$id = $data[0];
$at = $data[1];
$ar = $data[2];
$dt = $data[3];
$v = $data[4];
$di = $data[5];
#PUSH ONTO MYSQL
$dbh2->do("INSERT INTO datatable VALUES (?, ?, ?, ?, ?, ?)",
undef, $id, $at, $ar, $dt, $v, $di);
}

这非常慢。考虑到我在远程 SQL 服务器上的有限权限,是否有一种方法可以更快地复制这些数据? (有人建议创建一个链接服务器,但我认为如果没有远程服务器上的更多管理角色,我就无法做到)。将来我可能需要处理更大的数据集,因此找到一种更快的方法将是理想的选择。

值得注意的是:我每天晚上都会从远程服务器复制整个日期范围,尽管从技术上讲它只更新了最近一天的数据。然而,之前日期的某些数据可能会在以后发生更改,这就是为什么我们认为每次都复制整个数据是谨慎的做法。这显然是导致速度变慢的部分原因。有没有办法每天晚上只复制更改?

仅供引用,我的工作机器运行的是 Windows 7,我使用的是 MySQL 5.7

最佳答案

根据dev.mysql.com LOAD DATA INFILE 比 INSERT 快大约 20 倍。这意味着使用 Perl 脚本写入文本文件并使用该信息执行 LOAD DATA INFILE 的速度要快得多。

关于mysql - 将大量数据从 SQL Server 复制到 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34775258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com