Mysql
使用 3 個索引和 1 個外鍵降低 MySQL 插入速度
我正在使用包含數十億行數據的 Innodb 開發 MySQL 數據庫。
我的表有 16 個欄位、3 個索引、1 個外鍵和 1 個主鍵。我的緩衝池大小為 47 GiB。
當我在禁用索引的情況下測試插入 1000 萬行時,花了 100 秒。
啟用索引後,由於我不斷地在 1000 萬行中插入數十億行,最初需要 150 秒……然後上升到 400 秒……然後增加到 1000 秒……現在每 1000 萬行達到 2000 秒行(使用載入數據語句)。
我想知道如何使用這些以後使用所需的索引來加快我的插入速度。
MySQL 在插入過程中崩潰了幾次,我必須重新啟動它……我想知道減速是否與崩潰有關。謝謝!
- 禁用鍵和 FK
- 載入數十億
- 使能夠
同時,提供
SHOW CREATE TABLE
;可能會有一些批評可能會有所幫助。特別是,如果這是一個數據倉庫應用程序,您是否有任何匯總表?
在載入表格之前執行以下操作
SET UNIQUE_CHECKS=1; SET autocommit=0; SET unique_checks=0; SET foreign_key_checks=0;
導入完成後,全部啟用。
使用多行插入
$$ like in mysqldump –extended-insert $$