MySQL存儲過程插入數據過慢處理方法(轉)


在使用存儲過程進行千萬條數據的插入的時候,插入效率在每分鍾七千條左右,這樣算下來,需要幾十個小時,所以找了一下優化的方法,除了對存儲過程本身的優化,還有就是修改了MySQL的配置文件的部分參數

我做了以下幾個參數的修改

  • innodb_log_file_size = 1024M

  日志組中的每個日志文件的大小,設置較大的值可以減少臟數據刷新到磁盤的次數

  • innodb_log_buffer_size = 256M  

將日志寫入日志磁盤文件前的緩沖大小,默認是16M,設置較大的值可以使日志在緩沖時不需要被保存到磁盤,減少磁盤讀取次數

  • innodb_flush_log_at_trx_commit = 0

將日志中的緩沖數據寫入磁盤,默認為1,即每次提交事務都會寫入磁盤,改為0后將減少寫入磁盤的次數

  • innodb_buffer_pool_size = 4G

該值用來高速緩沖數據和索引內存緩沖大小,也是減少磁盤IO來增加速度,一般設置為物理存儲的60%~70%

  • innodb_buffer_pool_instances = 4 

增加多個緩沖池,提高並行內存讀寫能力

  • innodb_write_io_threads = 8  &&  innodb_read_io_threads = 8

增加IO線程數,提高讀寫能力,根據機器的處理器來設置

  • innodb_io_capacity = 500

提高刷新臟頁數量和合並插入數量,改善磁盤I/O處理能力,默認200

以上參數修改都是通過減少對磁盤的IO操作來實現的,包括關閉了MySQL默認的事務存儲到磁盤的操作,增大緩沖區的容量,這樣子容易造成MySQL服務器宕機的時候,數據大量丟失,建議不要在生產環境下修改這些配置,根據實際情況修改

 

本文轉自:https://blog.csdn.net/qq_36182135/article/details/84854619


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM