MySQL 數據庫插入速度調整

由於項目變態需求;需要在一個比較短時間段急劇增加數據庫記錄(兩三天內,由於0增加至4億)。在整個過程調優過程非常艱辛。
MySQL 從最開始的時候 1000條/分鐘的插入速度調高至 10000條/秒。 相信大家都已經等急了相關介紹,下面我做調優時候的整個過程。提高數據庫插入性能中心思想:
1、儘量使數據庫一次性寫入Data File
2、減少數據庫的checkpoint 操作
3、程序上儘量緩衝數據,進行批量式插入與提交
4、減少系統的IO衝突
根據以上四點內容,作爲一個業餘DBA對MySQL服務進行了下面調整:
修改負責收錄記錄MySQL服務器配置,提升MySQL整體寫速度;具體爲下面三個數據庫變量值:innodb_autoextend_increment、innodb_log_buffer_size、innodb_log_file_size;此三個變量默認值分別爲 5M、8M、8M,根據服務器內存大小與具體使用情況,將此三隻分別修改爲:128M、16M、128M。同時,也將原來2個 Log File 變更爲 8 個Log File。此次修改主要滿足第一和第二點,如:增加innodb_autoextend_increment就是爲了避免由於頻繁自動擴展Data File而導致 MySQL 的checkpoint 操作;
將大表轉變爲獨立表空並且進行分區,然後將不同分區下掛在多個不同硬盤陣列中。
完成了以上修改操作後;我看到下面幸福結果:
獲取測試結果:
Query OK, 2500000 rows affected (4 min 4.85 sec)
Records: 2500000 Duplicates: 0 Warnings: 0
Query OK, 2500000 rows affected (4 min 58.89 sec)
Records: 2500000 Duplicates: 0 Warnings: 0
Query OK, 2500000 rows affected (5 min 25.91 sec)
Records: 2500000 Duplicates: 0 Warnings: 0
Query OK, 2500000 rows affected (5 min 22.32 sec)
Records: 2500000 Duplicates: 0 Warnings: 0
最後表的數據量:
+------------+
| count(*) |
+------------+
| 10000000|
+------------+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章