我在两个不同的服务器中有两个数据库:db1,db2。我想将一些数据从一个表转移到另一个表:从db1.mytable复制到db2.mytable
以下哪个会更好/更快:

答:从db1.mytable中选择大量行,然后将它们小批量发送到db2.mytable

B:的循环(从db1.mytable中选择少量的行,然后将它们全部一批插入db2.mytable)

例:
A:

SELECT * FROM mytable LIMIT 200000;
while(not_all_fetched)
{
    fetch 1000 rows;
    insert these 1000 rows into db2.mytable;
}



B:

while(more_rows_to_copy)
{
    SELECT * FROM mytable LIMIT 1000;
    fetch all of them;
    insert these 1000 rows into db2.mytable
}

最佳答案

我同意戴维·贾西(David Jashee)的观点。
不同服务器上的数据仅需要您首先导出它们。

在第一台服务器上,使用“选择到输出文件”导出表/列
在服务器2上,使用导入数据:


LOAD DATA INFILE .. INTO TABLE tmptable
http://dev.mysql.com/doc/refman/5.0/fr/load-data.html
从tmptable插入newdestination SELECT字段1


这会很快

关于php - MySQL PHP:从一个表中选择数据,然后插入另一个数据库中的另一个表中:性能明智,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17352215/

10-13 06:42