优化SQL步骤——查看SQL执行频率 || 定位低效率执行SQL
優(yōu)化SQL步驟
在應(yīng)用的的開發(fā)過程中,由于初期數(shù)據(jù)量小,開發(fā)人員寫 SQL 語句時更重視功能上的實現(xiàn),
但是當(dāng)應(yīng)用系統(tǒng)正式上線后,隨著生產(chǎn)數(shù)據(jù)量的急劇增長,很多 SQL 語句開始逐漸顯露出性能問題,對生產(chǎn)的影響也越來越大,
此時這些有問題的 SQL 語句就成為整個系統(tǒng)性能的瓶頸,因此我們必須要對它們進(jìn)行優(yōu)化,
當(dāng)面對一個有 SQL 性能問題的數(shù)據(jù)庫時,我們應(yīng)該從何處入手來進(jìn)行系統(tǒng)的分析,使得能夠盡快定位問題 SQL 并盡快解決問題。
查看SQL執(zhí)行頻率
MySQL 客戶端連接成功后,
通過 show [session|global] status 命令可以提供服務(wù)器狀態(tài)信息。
show[session|global] status 可以根據(jù)需要加上參數(shù)“session”或者“global”來顯示 session 級(當(dāng)前連接)的計結(jié)果和global 級(自數(shù)據(jù)庫上次啟動至今)的統(tǒng)計結(jié)果。
如果不寫,默認(rèn)使用參數(shù)是“session”。下面的命令顯示了當(dāng)前 session 中所有統(tǒng)計參數(shù)的值:
show? status? like??? 'Com_______' ;
show? status? like? 'Innodb_rows_%' ;
Com_xxx 表示每個 xxx 語句執(zhí)行的次數(shù),我們通常比較關(guān)心的是以下幾個統(tǒng)計參數(shù)。
Com_*** : 這些參數(shù)對于所有存儲引擎的表操作都會進(jìn)行累計。
Innodb_*** : 這幾個參數(shù)只是針對InnoDB 存儲引擎的,累加的算法也略有不同。
?
定位低效率執(zhí)行SQL
show processlist? 命令查看當(dāng)前MySQL在進(jìn)行的線程
總結(jié)
以上是生活随笔為你收集整理的优化SQL步骤——查看SQL执行频率 || 定位低效率执行SQL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 存储引擎——概述|| 各种存储引擎的特性
- 下一篇: 优化SQL步骤—— explain分析执