# ms ###
# ms ################
# ms ################################################################
# s #
# s+
# Tables
# SHOW TABLE STATUS FROM `production ` LIKEInvitesNew\G
# SHOW CREATE TABLE `production ``InvitesNew\G
# EXPLAIN /*! PARTITIONS*/
SELECT InviteId InviterIdentifier FROM InvitesNew WHERE (InviteSetId = )
AND (InviteeIdentifier = ) LIMIT \G
查詢報告的頂部包含了一些元數據包括查詢執行的頻率平均並發度以及該查詢性能最差的一次執行在日志文件中的字節偏移值接下來還有一個表格格式的元數據包括諸如標准差一類的統計信息
接下來的部分是響應時間的直方圖有趣的是可以看到上面這個查詢在Query_timedistribution 部分的直方圖上有兩個明顯的高峰大部分情況下執行都需要幾百毫秒但在快三個數量級的部分也有一個明顯的尖峰幾百微秒就能執行完成如果這是Percona Server 的記錄那麼在查詢日志中還會有更多豐富的屬性可以對查詢進行切片分析到底發生了什麼比如可能是因為查詢條件傳遞了不同的值而這些值的分布很不均衡導致服務器選擇了不同的索引或者是由於查詢緩存命中等在實際系統中這種有兩個尖峰的直方圖的情況很少見尤其是對於簡單的查詢查詢越簡單執行計劃也越穩定
在細節報告的最後部分是方便復制粘貼到終端去檢查表的模式和狀態的語句以及完整的可用於EXPLAIN 分析執行計劃的語句EXPLAIN 分析的語句要求所有的條件是文本值而不是指紋替代符所以是真正可直接執行的語句在本例中是執行時間最長的
一條實際的查詢
確定需要優化的查詢後可以利用這個報告迅速地檢查查詢的執行情況這個工具我們經常使用並且會根據使用的情況不斷進行修正以幫助提升工具的可用性和效率強烈建議大家都能熟練使用它MySQL 本身在未來或許也會有更多復雜的測量點和剖析工具但在本書寫作時通過慢查詢日志記錄查詢或者使用ptquerydigest 分析tcpdump的結果是可以找到的最好的兩種方式
返回目錄高性能MySQL
編輯推薦
ASP NET開發培訓視頻教程
數據倉庫與數據挖掘培訓視頻教程
Oracle索引技術
[] []
From:http://tw.wingwit.com/Article/program/MySQL/201311/29713.html