簡體   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