《從內(nèi)存到連接數(shù),如何有效提升MYSQL性能(一)?》要點(diǎn):
本文介紹了從內(nèi)存到連接數(shù),如何有效提升MYSQL性能(一)?,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
作為開(kāi)發(fā)人員,平時(shí)和MySQL數(shù)據(jù)庫(kù)打交道時(shí),更加關(guān)注的是如何寫(xiě)出滿足業(yè)務(wù)需求的SQL,而作為MySQL DBA除了關(guān)心開(kāi)發(fā)人員寫(xiě)的業(yè)務(wù)SQL語(yǔ)句之外,對(duì)MySQL實(shí)例的整體運(yùn)行狀態(tài)也要十分關(guān)注,MySQL實(shí)例就像是一部精密的“機(jī)器”,如果某個(gè)方面呈現(xiàn)短板,則將會(huì)對(duì)這部“機(jī)器”整體運(yùn)行性能造成負(fù)面影響,影響MySQL數(shù)據(jù)庫(kù)運(yùn)行性能的方面有很多.
本文將主要從內(nèi)存方面、IO與文件句柄限制方面、以及像慢查詢、Binary日志和連接數(shù)方面來(lái)展開(kāi)談?wù)勅绾螌?duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行狀態(tài)監(jiān)控并依據(jù)經(jīng)驗(yàn)值進(jìn)行優(yōu)化.從而使MySQL這部“機(jī)器”更高效的運(yùn)轉(zhuǎn).
【“工欲善其事,必先利其器” 】
? 如何獲取MySQL狀態(tài)值以便于開(kāi)展后續(xù)的診斷調(diào)優(yōu)工作?
查看mysql參數(shù)的命令,在mysql客戶端輸入"show variables"
如果想要查看某個(gè)具體的值,可以使用如下命令:show variables like "%具體變量%";
例如:查看最年夜連接數(shù): show variables like '%max_connections%';如圖1:
(圖1)
查看mysql狀態(tài)的命令,在mysql客戶端輸入"show status"之后將會(huì)看到如下輸出;如圖2:
(圖2)
如果想要查看某個(gè)具體的值,可以使用如下命令:show status like "%具體變量%";例如:查看歷史最年夜連接數(shù): show status like '%max_used_ connections%';如圖3:
(圖3)
【內(nèi)存方面監(jiān)控及優(yōu)化 】
目前MySQL數(shù)據(jù)庫(kù)默認(rèn)使用的存儲(chǔ)引擎為InnoDB引擎,該引擎的存儲(chǔ)機(jī)制同Oracle很相似,因此這就意味著內(nèi)存的合理設(shè)置對(duì)于使用InnoDB存儲(chǔ)引擎的MySQL數(shù)據(jù)庫(kù)影響十分巨年夜.
一、查看當(dāng)前數(shù)據(jù)庫(kù)實(shí)例配置的內(nèi)存年夜小
show variables like '%innodb_buffer_pool_ size%';
一般來(lái)講,在使用InnoDB引擎的MySQL數(shù)據(jù)庫(kù)必要將innodb_buffer_pool_size設(shè)置為實(shí)際物理內(nèi)存的1/2或2/3,原因是通過(guò)提高查詢的內(nèi)存命中率來(lái)減少對(duì)磁盤(pán)IO操作.
二、查詢緩存
作為加速查詢的重要手段,其年夜小設(shè)置的是否合理也關(guān)系到MySQL數(shù)據(jù)庫(kù)的性能好壞.啟用查詢緩存,可以極年夜地減低數(shù)據(jù)庫(kù)服務(wù)器的CPU使用率.
查看查詢緩存設(shè)置情況:show variables like '%query_cache%';
查看查詢緩存使用情況:show status like 'qcache%';
對(duì)付某些不想使用緩存的語(yǔ)句,可以這樣使用:
三、排序操作監(jiān)控(sort opera-tions)
依據(jù)如下公式,評(píng)估參數(shù)sort_buffer_size設(shè)置是否合理 :
Sort_merge_passes/(Sort_scan+Sort_ range),如果其值大于2的話,則說(shuō)明sort_buffer_size設(shè)置偏小,必要將其調(diào)大.
四、連接操作監(jiān)控(join opera-tions)
當(dāng)監(jiān)控到這兩個(gè)狀態(tài)值為0時(shí),說(shuō)明數(shù)據(jù)庫(kù)中索引被合理的利用,當(dāng)其中有一項(xiàng)不為0時(shí),則說(shuō)明join_buffer_size的尺寸偏小,必要將其調(diào)大.
本文我們從MYSQL的狀態(tài)值和內(nèi)存方面來(lái)介紹MYSQL性能調(diào)優(yōu),下文我們會(huì)從表工具和文件方面使用監(jiān)控和慢查詢、Binary日志和連接數(shù)方面來(lái)介紹影響數(shù)據(jù)庫(kù)性能的因素.
歡迎參與《從內(nèi)存到連接數(shù),如何有效提升MYSQL性能(一)?》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/8683.html