繁体   English   中英

将具有1.3 MIL记录的表从一台MysQL服务器移动到另一台(在不同的物理服务器上)

[英]Move Table with 1.3 MIL records from one MysQL Server to Another (on different physical servers)

我们有一个查询在运行,它是一个从Select语句插入的语句,字面意义是在几秒钟内完成-能够轻松插入130万条记录。

我们有新的要求。 现在,要创建并插入其中的表必须存在于同一子网的不同mysql服务器上。

如何才能做到这一点? 最有效的方法是什么? 我们应该在文件级别备份表,然后将其复制到新服务器吗?

还是我们应该对两个数据库都运行查询,如果是的话,这需要多长时间?

我们需要手动执行此过程-

这是我们用于执行此操作的当前代码的示例:

$populateNewTable = "insert into tbl_free_minutes_".strtolower(date("M")).date("Y")." (cust_id,telephone_number,state,created_datetime,plan_id,requested_planid) SELECT id,telephone_number,state,created_datetime,plan_id,requested_planid FROM tbl_customer WHERE created_datetime <= '".$date." 23:59:59' AND account_status IN ( 'Active', 'ActiveLL','Suspend') AND  plan_id IN ('14','13','15','16','17','19','20','21','22','23','24','60','26', '27','28','29','30','31','32','33','34','38','39','40','44','45','46','47','48', '49','50','51','52','53','54','55','56','57','58','59','35','36','66','63','64', '65','67','68','69',76,77,78,79,82,83,84,85,86,87,88,89,93,94,95,96) and unlimited_plan != 'Y' ";

SAS

我建议使用“ SELECT ... INTO OUTFILE”在第一台服务器上提取数据。
然后将查询创建的文件传输到第二台服务器。
最后,在第二台服务器上使用“ LOAD DATA INFILE”将数据加载到表中。

一些链接:
http://dev.mysql.com/doc/refman/5.5/en/select-into.html
http://dev.mysql.com/doc/refman/5.5/en/load-data.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM