我想加快數據加載速度。如何加速數據加載到InnoDB(LOAD DATA INFILE)?
我使用MySQL 5.5,InnoDB並擁有1M行數據(65Mb文件)。它需要5分鐘。
什麼mysql的設置和命令會影響InnoDB的LOAD DATA INFILE的速度?
謝謝。
我想加快數據加載速度。如何加速數據加載到InnoDB(LOAD DATA INFILE)?
我使用MySQL 5.5,InnoDB並擁有1M行數據(65Mb文件)。它需要5分鐘。
什麼mysql的設置和命令會影響InnoDB的LOAD DATA INFILE的速度?
謝謝。
我可以推薦這些設置,以改善負載時間:
除了設置,有一些事情你可以做自己:
嘗試刪除索引和觸發器。您可以在加載後重新創建它們。還要考慮使用my-huge.cnf中的一些高負載設置,而不是缺省設置。
一些更InnoDB的性能設置:
http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/
這可能不是正是你要尋找的,但是是我在過去
ALTER TABLE TABLE_NAME DISABLE KEYS;
LOAD DATA INFILE ... ;
ALTER TABLE TABLE_NAME ENABLE KEYS;
使用的伎倆希望它幫助。
還要確保在可能的情況下禁用二進制日誌記錄。
如果你趕時間,因爲要更換直播表的內容,然後再去做這種方式來代替:
CREATE TABLE new LIKE live;
LOAD DATA ... INTO new;
RENAME TABLE live TO old, new TO live;
DROP TABLE old;
的RENAME
是「瞬間」和原子,所以你是「永遠」向下,不管桌子的大小。
(因此你不必擔心加快LOAD
這麼多。)
這招只對MyISAM。 – 2011-02-19 20:24:39
你說得對,對不起。 – 2011-02-24 14:38:06