php - 将具有 130 万条记录的表从一个 MysQL 服务器移动到另一个(在不同的物理服务器上)

标签 php mysql database

我们有一个运行的查询,它是一个 Insert from 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

关于php - 将具有 130 万条记录的表从一个 MysQL 服务器移动到另一个(在不同的物理服务器上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10854321/

相关文章:

MYSQL查询时间戳比较

php - Laravel4/PHP : extending a class within different namespaced levels

php - 如何将 json 格式的 Fabricjs-canvas 对象添加到 php 中的索引数组中?

php - 如何查询一行中的所有字段

MySQL 5.0 报告 "concat does not exist"

php - PDO + PHP lastInsertId() 问题

Android升级sqlite数据库问题

php - 如何在Count()中指定条件?

javascript - json_encode 从 Javascript 返回未定义

php - 在 mysqlquery 和 php 方面需要帮助