你可以嘗試下一個:
做一個TableShadowCopy。 (如果是活的表,這樣你將避免網站掛,否則你可以跳過這一步)
DROP TABLE IF EXISTS __shadow_table; // droping previous shadow table if exists
CREATE TABLE __shadow_table LIKE table; // COPY source table structue
CREATE TABLE IF NOT EXISTS __shadow_table SELECT * FROM table; // possible use of WHERE statemnet
現在,你有你的源表的精確副本,你可以用它做你不必擔心什麼導入時「網站停止」的後果。
禁用索引在新創建的表
ALTER TABLE __shadow_table DISABLE KEYS;
現在你可以做你的導入表(__shadow_table
)。
嘗試LOAD DATA LOCAL INFILE
(需要FILE
許可)
如果您有沒有FILE
許可使用BULK INSERT
INSERT INTO __shadow_table (col1, col2, col3, col4) VALUES (1,2,3,4), (6,7,8,9), (20,30,40,60);
啓用索引在桌子上(影子表)
ALTER TABLE __shadow_table ENABLE KEYS;
DROP原始表
DROP TABLE IF EXISTS table
RENAME影子表到原始(DROP
PED)名稱
RENAME TABLE __shadow_table TO table;
禁用索引而進口允許減少負載和HDD插入數據時搜索。此外,如果表格爲InnoDB
,則應禁用FOREIGN_KEY_CHECKS
。 一切都在導入過程中什麼是禁用應該由進口月底啓用。
給我們看一些代碼。 – Tomer 2012-07-26 08:16:13
你要輸入什麼樣的記錄? 70.000不是很多。你有沒有檢查http://dev.mysql.com/doc/refman/5.1/en/load-data.html? – Sherlock 2012-07-26 08:16:36
我從csv文檔導入條目,因此它抓住輸入到給定表中的行。 – user1264204 2012-07-26 08:24:46