幾個和MySQL InnoDB相關的引數設定說明

chenfeng發表於2016-10-24
innodb_buffer_pool_size
此引數類似於oracle的SGA配置,當主機做為mysql資料庫伺服器時,一般配置為整機記憶體的60%~80%。

innodb_buffer_pool_instances
此引數用於設定記憶體緩衝池例項數,將innodb_buffer_pool_size配置的記憶體分割成N份,此引數當配置記憶體大小於1G時才生效,當資料庫有多個會話進行資料庫操作時用於並行在多個記憶體塊中處理任務,一般配置值小於等於伺服器CPU的個數。

max_connections 
此引數用於設定MySQL的最大連線數,當資料庫面對高併發時,這個值需要調節為一個合理的值,才滿足業務的併發要求,避免資料庫拒絕連線。

max_user_connections
此引數用於設定單個使用者的連線數。

innodb_log_buffer_size
此引數用於設定日誌緩衝區大小,一般不用設定太大,能存下1秒鐘操作的資料日誌就行了,mysql預設1秒寫一輪詢寫一次日誌到磁碟。

innodb_stats_on_metadata
此引數用於設定是否動態收集統計資訊,開啟時會影響資料庫的效能(一般關閉,找個時間手動重新整理,或定時重新整理)如果為關閉時,需要配置資料庫排程任務,定時重新整理資料庫的統計資訊。

innodb_lock_wait_timeout
此引數用於控制鎖的超時時間,預設為50,這個值要注意,如果有特殊業務確實要耗時較長時,不能配置太短。

innodb_thread_concurrency
此引數用於設定限制能夠進入innodb層的執行緒數
建議設定成機器cpu核數的2倍,不過大多數情況下,預設值已經足夠。

innodb_write_io_threads
此引數用於寫髒頁的執行緒數(資料庫寫操作時的執行緒數,用於併發)

innodb_read_io_threads
此引數用於從磁碟讀檔案塊的執行緒數(資料庫讀操作時的執行緒數,用於併發)
假如CPU是2顆8核的,那麼可以按照如下設定:
innodb_read_io_threads = 8
innodb_write_io_threads = 8

如果資料庫的讀操作比寫操作多,那麼可以設定:
innodb_read_io_threads = 10
innodb_write_io_threads = 6

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2127006/,如需轉載,請註明出處,否則將追究法律責任。

相關文章