我們面對一個問題的時候,首先是發現問題,然後才是解決問題。在這篇文章中,主要解決如何定位問題。
show status [like 'com_%'];
Com_xxx表示每個xxx語句執行的次數。
具體參數,參見:
http://lxneng.iteye.com/blog/451985
http://www.sandzhang.com/blog/2010/04/07/mysql-show-status-explained-detail/
explain sql_statement;
參數關系
explain extended sql_statement;
show warnings;
explain extended輸出結果相比explain多了filtered字段(所有結果行數/查詢結果行數*100),show warning的message字段可以看到sql優化器優化的結果。<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KCjxoMyBpZD0="4通過-show-profile分享sql">4.通過 show profile分享sql
#查看是否mysql支持profile
SELECT @@have_profiling;
#查看是否開啟profiling
select @@profiling;
#查看profile
show profiles;
#查看某一個具體的query的profile,n-查詢id;
show profile for query n;
Sending data狀態表示mysql線程開始訪問數據行並把結果返回給客戶端,而不僅僅是返回結果給客戶端。
#開啟trace,設置格式為json,設置trace能使用的最大內存大小。
set optimizer_trace="enabled=on",end_markers_in_json=on;
set optimizer_trace_max_mem_size=100000;
#檢查trace
SELECT * FROM information_schema.OPTIMIZER_TRACE;