溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

優(yōu)化mysql的解決方案

發(fā)布時間:2020-06-03 16:48:57 來源:網(wǎng)絡(luò) 閱讀:301 作者:三月 欄目:MySQL數(shù)據(jù)庫

本篇文章給大家主要講的是關(guān)于優(yōu)化mysql的解決方案的內(nèi)容,感興趣的話就一起來看看這篇文章吧,相信看完優(yōu)化mysql的解決方案對大家多少有點參考價值吧。

#mysql優(yōu)化解決方案


#公共參數(shù)默認(rèn)值:

max_connections = 151

#同事處理多大連接數(shù),推薦設(shè)置最大連接數(shù)是上限連接數(shù)的80%左右

sort_buffer_size = 2M

#查詢排序時緩沖區(qū)大小,只對order by和group by起作用,可增大此值為16M

open_files_limit = 1024

#打開文件數(shù)限制,如果show global status like ‘open_files’ 查看的值等于或者大于open_files_limit值時

#程序會無法連接數(shù)據(jù)庫或卡死


MyISAM參數(shù)默認(rèn)值:

key_buffer_size = 16M

#索引緩存區(qū)大小,一般設(shè)置物理內(nèi)存的30-40%

read_buffer_size = 128k

#讀操作緩存區(qū)大小,推薦設(shè)置16M或32M

query_cache_type = ON

#打開查詢緩存功能

query_cache_limit = 1M 

#查詢緩存限制,只有1M以下查詢結(jié)果才會被緩存,以免結(jié)果數(shù)據(jù)較大把緩存池覆蓋

query_cache_size = 16M

#查看緩存區(qū)大小,用于緩存SELECT查詢結(jié)果,下一次有同樣SELECT查詢將直接從緩存池返回結(jié)果,可適當(dāng)成倍增加此值


InnoDB參數(shù)默認(rèn)值:

innodb_buffer_pool_size = 128M

#索引和數(shù)據(jù)緩沖區(qū)大小,一般設(shè)置物理內(nèi)存的60%-70%

innodb_buffer_pool_instances = 1    

#緩沖池實例個數(shù),推薦設(shè)置4個或8個

innodb_flush_log_at_trx_commit = 1  

#關(guān)鍵參數(shù),0代表大約每秒寫入到日志并同步到磁盤,數(shù)據(jù)庫故障會丟失1秒左右事務(wù)數(shù)據(jù)。1為每執(zhí)行一條SQL后寫入到日志并同步到磁盤,I/O開銷大,執(zhí)行完SQL要等待日志讀寫,效率低。2代表只把日志寫入到系統(tǒng)緩存區(qū),再每秒同步到磁盤,效率很高,如果云服務(wù)器故障,才會丟失事務(wù)數(shù)據(jù)。對數(shù)據(jù)安全性要求不是很高的推薦設(shè)置2,性能高,修改后效果明顯。

innodb_file_per_table = OFF  

#默認(rèn)是共享表空間,共享表空間idbdata文件不斷增大,影響一定的I/O性能。推薦開啟獨立表空間模式,每個表的索引和數(shù)據(jù)都存在自己獨立的表空間中,可以實現(xiàn)單表在不同數(shù)據(jù)庫中移動。

innodb_log_buffer_size = 8M  

#日志緩沖區(qū)大小,由于日志最長每秒鐘刷新一次,所以一般不用超過16M


#系統(tǒng)內(nèi)核優(yōu)化

net.ipv4.tcp_fin_timeout = 30

#TIME_WAIT超時時間,默認(rèn)是60s

net.ipv4.tcp_tw_reuse = 1    

#1表示開啟復(fù)用,允許TIME_WAIT socket重新用于新的TCP連接,0表示關(guān)閉

net.ipv4.tcp_tw_recycle = 1  

#1表示開啟TIME_WAIT socket快速回收,0表示關(guān)閉

net.ipv4.tcp_max_tw_buckets = 4096   

#系統(tǒng)保持TIME_WAIT socket最大數(shù)量,如果超出這個數(shù),系統(tǒng)將隨機(jī)清除一些TIME_WAIT并打印警告信息

net.ipv4.tcp_max_syn_backlog = 4096

#進(jìn)入SYN隊列最大長度,加大隊列長度可容納更多的等待連接


#在linux系統(tǒng)中,如果進(jìn)程打開的文件句柄數(shù)量超過系統(tǒng)默認(rèn)值1024,就會提示“too many files open”信息,所以要調(diào)整打開文件句柄限制。

# vi /etc/security/limits.conf  #加入以下配置,*代表所有用戶,也可以指定用戶,重啟系統(tǒng)生效

* soft nofile 65535

* hard nofile 65535

# ulimit -SHn 65535   #立刻生效

以上關(guān)于優(yōu)化mysql的解決方案詳細(xì)內(nèi)容,對大家有幫助嗎?如果想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI