mysql8.0.15调优_Mysql 8.0 参数调优
max_connections允許客戶端并發(fā)連接的最大數(shù)量
max_connect_errors如果客戶端嘗試連接的錯(cuò)誤數(shù)量超過這個(gè)參數(shù)設(shè)置的值
interactive_timeout:Mysql關(guān)閉交互連接前的等待時(shí)間,單位是秒,默認(rèn)是8小時(shí),建議不要將該參數(shù)設(shè)置超過24小時(shí),即86400
wait_timeout:Mysql關(guān)閉非交互連接前的等待時(shí)間,單位是秒,默認(rèn)是8小時(shí),建議不要將該參數(shù)設(shè)置超過24小時(shí),即86400
thread_cache_size:MySQL服務(wù)緩存以重用的線程數(shù)。當(dāng)客戶端斷開連接的時(shí)候,如果線程緩存沒有使用滿,則客戶端的線程被放入緩存中。如果有客戶端斷開連接后再次連接到MySQL服務(wù)且線程在緩存中,則MySQL服務(wù)會(huì)優(yōu)先使用緩存中的線程;如果線程緩存沒有這些線程,則MySQL服務(wù)器會(huì)創(chuàng)建新的線程。如果數(shù)據(jù)庫有很多的新連接,可以增加這個(gè)參數(shù)來提升性能。如果MySQL服務(wù)器每秒有上百個(gè)連接,可以增大thread_cache_size參數(shù)來使MySQL服務(wù)器使用緩存的線程。通過檢查Connections和Threads_created狀態(tài)參數(shù),可以判斷線程緩存是否足夠。這個(gè)參數(shù)默認(rèn)的值是由下面的公式來決定的:8 + (max_connections / 100)
innodb_buffer_pool_size:InnDB存儲(chǔ)引擎緩存表和索引數(shù)據(jù)所使用的內(nèi)存大小。默認(rèn)值是128MB。在以InnDB存儲(chǔ)引擎為主的系統(tǒng)中,可以將這個(gè)參數(shù)設(shè)為機(jī)器物理內(nèi)存的80%。
innodb_buffer_pool_instances:InnoDB緩存池被分成的區(qū)域數(shù)。對于1GB以上大的InnoDB緩存,將緩存分成多個(gè)部分可以提高M(jìn)ySQL服務(wù)的并發(fā)性,減少不同線程讀緩存頁的讀寫競爭。每個(gè)緩存池有它單獨(dú)的空閑列表、刷新列表、LRU列表和其他連接到內(nèi)存池的數(shù)據(jù)結(jié)構(gòu),它們被mutex鎖保護(hù)。這個(gè)參數(shù)只有將innodb_buffer_pool_size參數(shù)設(shè)為1GB或以上時(shí)才生效。建議將每個(gè)分成的內(nèi)存區(qū)域設(shè)為1GB大小。
innodb_buffer_pool_chunk_size:innodb_buffer_pool_chunk_size* innodb_buffer_pool_instances =innodb_buffer_pool_size。innodb_buffer_pool_chunk_size和innodb_buffer_pool_size永遠(yuǎn)總是滿足公式的,否則mysql啟動(dòng)時(shí)會(huì)自動(dòng)調(diào)整兩個(gè)參數(shù)的值
back_log值指出在MySQL暫時(shí)停止回答新請求之前的短時(shí)間內(nèi)多少個(gè)請求可以被存在堆棧中。也就是說,如果MySql的連接數(shù)達(dá)到max_connections時(shí),新來的請求將會(huì)被存在堆棧中,以等待某一連接釋放資源,該堆棧的數(shù)量即back_log,如果等待連接的數(shù)量超過back_log,將不被授予連接資源。
innodb_flush_log_at_trx_commit = 2如果innodb_flush_log_at_trx_commit設(shè)置為0,log buffer將每秒一次地寫入log file中,并且log file的flush(刷到磁盤)操作同時(shí)進(jìn)行.該模式下,在事務(wù)提交的時(shí)候,不會(huì)主動(dòng)觸發(fā)寫入磁盤的操作。
如果innodb_flush_log_at_trx_commit設(shè)置為1,每次事務(wù)提交時(shí)MySQL都會(huì)把log buffer的數(shù)據(jù)寫入log file,并且flush(刷到磁盤)中去.
如果innodb_flush_log_at_trx_commit設(shè)置為2,每次事務(wù)提交時(shí)MySQL都會(huì)把log buffer的數(shù)據(jù)寫入log file.但是flush(刷到磁盤)操作并不會(huì)同時(shí)進(jìn)行。該模式下,MySQL會(huì)每秒執(zhí)行一次 flush(刷到磁盤)操作。
sync_binlog
sync_binlog 的默認(rèn)值是0,像操作系統(tǒng)刷其他文件的機(jī)制一樣,MySQL不會(huì)同步到磁盤中去而是依賴操作系統(tǒng)來刷新binary log。
當(dāng)sync_binlog =N (N>0) ,MySQL 在每寫 N次 二進(jìn)制日志binary log時(shí),會(huì)使用fdatasync()函數(shù)將它的寫二進(jìn)制日志binary log同步到磁盤中去。
bulk_insert_buffer_size = 100M批量插入的緩存
slow_query_log是否開啟慢查詢?nèi)罩?#xff0c;1表示開啟,0表示關(guān)閉。
long_query_time?慢查詢閾值,當(dāng)查詢時(shí)間多于設(shè)定的閾值時(shí),記錄日志。
log_queries_not_using_indexes?未使用索引的查詢也被記錄到慢查詢?nèi)罩局?可選項(xiàng))
log_output?日志存儲(chǔ)方式。log_output='FILE'表示將日志存入文件,默認(rèn)值是'FILE'。log_output='TABLE'表示將日志存入數(shù)據(jù)庫,這樣日志信息就會(huì)被寫入到mysql.slow_log表中。MySQL數(shù)據(jù)庫支持同時(shí)兩種日志存儲(chǔ)方式,配置的時(shí)候以逗號隔開即可,如:log_output='FILE,TABLE'。日志記錄到系統(tǒng)的專用日志表中,要比記錄到文件耗費(fèi)更多的系統(tǒng)資源,因此對于需要啟用慢查詢?nèi)罩?#xff0c;又需要能夠獲得更高的系統(tǒng)性能,那么建議優(yōu)先記錄到文件
總結(jié)
以上是生活随笔為你收集整理的mysql8.0.15调优_Mysql 8.0 参数调优的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql开启binlog启动慢_mys
- 下一篇: mysql odbc安装提示找不到ian