(1)、通過show status命令了解各種SQL的執行頻率。
(2)、定位執行效率較低的SQL語句-(重點select)
(3)、通過explain分析低效率的SQL語句的執行情況
(4)、確定問題並采取相應的優化措施
(1) 通過showstatus命令了解各種SQL的執行頻率
MySQL客戶端連接成功後,通過使用show[session|global] status 命令可以提供服務器狀態信息。其中的session來表示當前的連接的統計結果,global來表示自數據庫上次啟動至今的統計結果。默認是session級別的。
下面的例子: show status like ‘Com_%’;
其中Com_XXX表示XXX語句所執行的次數。
重點注意:
Com_select,Com_insert,Com_update,Com_delete通過這幾個參數,可以容易地了解到當前數據庫的應用是以插入更新為主還是以查詢操作為主,以及各類的SQL大致的執行比例是多少。
參數說明:
com_xxx表示每個xxx語句的執行次數.如:
com_select 表示執行select操作的次數,一次查詢只累計加1
com_update 表示執行update操作的次數
com_insert 表示執行insert操作的次數,對批量插入只算一次
com_delete 表示執行delete操作的次數
只針對innodb存儲引擎的參數
Innodb_rows_deleted執行delete操作所影響的行數
Innodb_rows_inserted執行insert操作所影響的行數
Innodb_rows_read執行select操作所影響的行數
Innodb_rows_updated執行update操作所影響的行數
還有幾個常用的參數便於用戶了解數據庫的基本情況。
connections:試圖連接MySQL服務器的次數(成功or失敗都會進行累加)
uptime:服務器工作的時間(單位秒)
slow_queries:慢查詢的次數 (默認是10)
(2)、定位執行效率較低的SQL語句
通過開啟慢查詢
(3)、通過explain分析低效率的SQL語句的執行情況
(4)、確定問題並采取相應的優化措施