天天看點

mysql 優化之sql效率檢視

sql優化前準備:

a,通過show status 指令了解sql語句的執行效率

如:

Com_xxx表示每個xxx語句執行的次數,我們通常比較關心的是以下幾個參數

Com_select:執行select操作的次數,每次累加1

Com_insert:。。。。。。。

Com_update:。。。。。。。

Com_delete:。。。。。。。。

這些參數是針對所有的儲存引擎的查詢,你也可以隻是查詢一種儲存引擎的,但是傳回的結果不一樣,執行條數如下:

Innodb_rows_read:但是這個命名表示的是SELECTT查詢傳回的行數

Innodb_rows_inserted:。。。。。。。。。。

Innodb_rows_updateed:。。。。。。。。。。

Innodb_rows_deleteed:。。。。。。。。。。。

另外下面幾個參數也是了解資料庫的基本情況:

Connection:試圖連接配接mysql伺服器的次數

Update:伺服器工作時間。

Slow_queries:慢查詢的次數。

b,定位執行效率較低的sql語句

方式一:可以使用慢查詢日志檢視那些執行效率較低的sql語句,

方式二:用show processlist 指令檢視目前的msyql進行的線程包括線程的狀态,是否鎖表等,可以時時檢視sql的執行情況,同時對于鎖表進行優化;

c,可以使用explain 加上sql語句測試該sql語句的執行效率,計劃

explain select * from shuju資料庫.資料表 where id = 123;

d,我們也可以通過show profile 分析SQL 可以使用

檢視是否支援profile:同時profiling預設是關閉的,可以通過set語句在Session級别開啟profiling