1、查看MySQL系統(tǒng)性能參數(shù)
在MySQL中,可以使用SHOW STATUS語(yǔ)句查詢一些MySQL數(shù)據(jù)庫(kù)服務(wù)器的性能參數(shù)、執(zhí)行頻率。
語(yǔ)法如下:
SHOW? [ GLOBAL | SESSION]? STATUS? LIKE? '參數(shù)';
一些常用的性能參數(shù)如下:
- Connections:連接MySQL服務(wù)器的次數(shù)
- Uptime:MySQL服務(wù)器上線時(shí)間(啟動(dòng)時(shí)長(zhǎng),單位:秒)
- Slow_queries:慢查詢次數(shù)
- Innodb_rows_read:select查詢返回的行數(shù)
- Innodb_rows_inserted:執(zhí)行INSERT操作插入的行數(shù)
- Innodb_rows_updated:執(zhí)行UPDATE操作更新的行數(shù)
- Innodb_rows_deleted:執(zhí)行DELETE操作刪除的行數(shù)
-
Innodb_rows_%:查看上述4種的匯總行數(shù)
如:
查看連接MySQL服務(wù)器次數(shù):
SHOW status LIKE 'connections';
查看MySQL啟動(dòng)時(shí)長(zhǎng)?:
--MySQL啟動(dòng)時(shí)長(zhǎng),單位:秒
SHOW status LIKE 'uptime';
?
查看MySQL慢查詢的次數(shù):
--MySQL慢查詢的次數(shù)
SHOW status LIKE 'slow_queries';
查看select、insert、update、delete對(duì)應(yīng)操作的行數(shù)
SHOW status LIKE 'innodb_rows_%';
2、統(tǒng)計(jì)SQL的查詢成本
- last_query_cost
- 使用:SHOW? STATUS? LIKE? 'last_query_cost';
一條SQL查詢語(yǔ)句在執(zhí)行前需要確定查詢執(zhí)行計(jì)劃,如果存在多種執(zhí)行計(jì)劃的話,MySQL會(huì)計(jì)算每個(gè)執(zhí)行計(jì)劃所需要的成本,從中選擇成本最小的一個(gè)座位最終的執(zhí)行計(jì)劃。
如果我們想要查看某條SQL語(yǔ)句的查詢成本,可以在執(zhí)行完這條SQL語(yǔ)句之后,通過(guò)查看當(dāng)前回話中的last_query_cost變量值來(lái)得到當(dāng)前查詢的成本。它通常也是我們評(píng)價(jià)一個(gè)查詢的執(zhí)行效率的一個(gè)常用指標(biāo)。這個(gè)查詢成本對(duì)應(yīng)的是SQL語(yǔ)句所需要讀取的頁(yè)的數(shù)量。
例如:student_info表有100萬(wàn)條數(shù)據(jù),我們查詢
select * from student_info where id = 900001;
結(jié)果如下:當(dāng)前SQL只需要查詢1個(gè)數(shù)據(jù)頁(yè)
select * from student_info where id > 199000;
結(jié)果如下:
?使用場(chǎng)景:它對(duì)于比較開(kāi)銷(xiāo)是非常有用的,特別是我們有好幾種查詢方式可選的時(shí)候。
SQL 查詢是一個(gè)動(dòng)態(tài)的過(guò)程,從頁(yè)加載的角度來(lái)看,我們可以得到以下兩點(diǎn)結(jié)論:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-570425.html
位置決定效率
。如果頁(yè)就在數(shù)據(jù)庫(kù)緩沖池
中,那么效率是最高的,否則還需要從內(nèi)存
或者磁盤(pán)
中進(jìn)行讀取,當(dāng)然針對(duì)單個(gè)頁(yè)的讀取來(lái)說(shuō),如果頁(yè)存在于內(nèi)存中,會(huì)比在磁盤(pán)中讀取效率高很多。批量決定效率
。如果我們從磁盤(pán)中對(duì)單一頁(yè)進(jìn)行隨機(jī)讀,那么效率是很低的(差不多10ms),而采用順序讀取的方式,批量對(duì)頁(yè)進(jìn)行讀取,平均一頁(yè)的讀取效率就會(huì)提升很多,甚至要快于單個(gè)頁(yè)面在內(nèi)存中的隨機(jī)讀取。所以說(shuō),遇到I/O并不用擔(dān)心,方法找對(duì)了,效率還是很高的。我們首先要考慮數(shù)據(jù)存放的位置,如果是經(jīng)常使用的數(shù)據(jù)就要盡量放到
緩沖池
中,其次我們可以充分利用磁盤(pán)的吞吐能力,一次性批量讀取數(shù)據(jù),這樣單個(gè)頁(yè)的讀取效率也就得到了提升。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-570425.html
到了這里,關(guān)于MySQL查看系統(tǒng)性能參數(shù)、統(tǒng)計(jì)SQL的查詢成本last_query_cost的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!