提高MySQL插入記錄的速度

2021-06-06 20:08:49 字數 1032 閱讀 6934

在myisam engine下

1. 盡量使用insert into table_name values (...), (.....),(.....)這樣形式插入資料,避免使用inset into table_name

values (); inset into table_name values (); inset into table_name values ();

2 增加bulk_insert_buffer_size(預設8m)

3 如果是非空表,使用alter table table_name disable keys,然後load data infile,匯入完資料在執行:

alter table table_name enable keys. 如果是空表,就不需要這個操作,因為myisam表在空表中匯入資料時,

是先導入資料然後建立indexs。

4 在插入資料時考慮使用:insert delayed....這樣操作實際mysql把insert操作放到佇列裡面,進行相對集中的插

入,速度更快。

5. 使用load data infile 比使用insert 操作快近20倍,盡量使用此操作。

在innodb engine下

1.匯入資料之前執行set unique_checks=0來禁止對唯一索引的檢查,資料匯入完成之後再執行set

unique_checks=1.

2. 匯入資料之前執行set foreign_key_checks=0來禁止對外鍵的檢查,資料匯入完成之後再執行set

foreign_key_checks=1.

3.匯入資料之前執行set autocommit=0禁止自動事務的自動提交,資料匯入完成之後,執行set autocommit=1

恢復自動提交操作。

使用innodb engine的表,物理儲存都是按pk的順序存的。不能使用類似於myisam一樣disable keys.

硬體上提高磁碟的i/0對插入速度很有好處(所以如果進行大資料量的匯入匯出工作,盡量在比較nb的硬體上進

行,能縮減完成的時間,已經防止出現問題)。

mysql技巧 提高插入資料 新增記錄 的速度

問題描述 普通台式電腦,採集資料,1000萬資料量。採集回來的資料插入表中的時候很慢,每條約100毫秒。解決方法 1 加大mysql配置中的bulk insert buffer size,這個引數預設為8m bulk insert程式設計客棧 buf 2 改寫所有insert語句為insert de...

提高mysql插入資料的速度

需要在mysql中插入2000萬條記錄,用insert語句插入速度很有限,每秒鐘幾百條,放在hadoop集群上跑也是這個速度,可能是資料庫的問題了,網上看到sql server和oracle的insert速度也不是很快。比較簡單的優化方法如下 1 在一條insert語句中插入多條記錄 insert ...

mysql如何優化插入記錄速度

插入記錄時,影響插入速度的主要是索引 唯一性校驗 一次插入記錄條數等。根據這些情況,可以分別進行優化,本節將介紹優化插入記錄速度的幾種方法。一.對於myisam引擎表常見的優化方法如下 1.禁用索引。對於非空表插入記錄時,mysql會根據表的索引對插入記錄建立索引。如果插入大量資料,建立索引會降低插...