我有一個30萬條記錄的mysql表。MySQL表30萬條記錄插入另一個
有大約20列我將使用15插入到另一個表中。
現在我不能使用PHP來加載這個大型數據集(選擇3000萬行並加載到內存中是不可行的),加載所有這些記錄的最佳方法是什麼? MySQL 5.X
我正在使用EMS連接到數據庫。
我有一個30萬條記錄的mysql表。MySQL表30萬條記錄插入另一個
有大約20列我將使用15插入到另一個表中。
現在我不能使用PHP來加載這個大型數據集(選擇3000萬行並加載到內存中是不可行的),加載所有這些記錄的最佳方法是什麼? MySQL 5.X
我正在使用EMS連接到數據庫。
什麼做的INSERT INTO MySmallerTable SELECT Col1, col2, col3... FROM MyBiggerTable
這可能是值得把它分成多個INSERT
像:
INSERT INTO ... SELECT ... WHERE ID between 1 and 100000;
INSERT INTO ... SELECT ... WHERE ID between 100001 and 200000;
等
沒錯,使用什麼產品?或函數調用 –
我不能做一個插入選擇在PHP中,因爲它會試圖一次加載所有記錄...分手,限制或之間會導致數據庫指針達到第500萬條記錄和insert 100k –
你可以從mysql命令行執行此操作,而不是從php客戶端執行此操作。任何其他客戶可能會超時。 –
你可以做到這一點
INSERT INTO new_table (`col1`,`col2`,`col3`) SELECT `oldcol1`,`oldcol2`,`oldcol3`
FROM old_table LIMIT 0,100000
和PHP的循環重複它(不斷變化的極限開始值)
有幾個方法可以包括上面提供一個用戶M_M。我沒有使用EMS,也不確定它能做什麼,不能做什麼。但我已經廣泛使用Workbench。
A.
B.
你有什麼打算與檢索它們後30M記錄的事 - 你想最終頁結果給客戶?網絡視圖?在後臺處理它們?有多種分頁技術,但這取決於你在做什麼... – bryanmac