2014-11-25 31 views
2

可使用SET profiling = 1;MySQL的仿形在MySQL仿形

查詢SHOW PROFILES;顯示由每個查詢所花費的時間來設置。我想知道這個時間是否僅包括服務器的執行時間,還是包含將結果發送到前端所需的時間。

感謝

回答

1

按照manual狀態Sending data是它需要將結果發送到客戶端的時間。示例:

mysql> SHOW PROFILE FOR QUERY 1; 
+--------------------------------+----------+ 
| Status       | Duration | 
+--------------------------------+----------+ 
| starting      | 0.000024 | 
| Waiting for query cache lock | 0.000005 | 
| checking query cache for query | 0.000051 | 
| checking permissions   | 0.000010 | 
| Opening tables     | 0.000022 | 
| System lock     | 0.000012 | 
| Waiting for query cache lock | 0.000024 | 
| init       | 0.000043 | 
| optimizing      | 0.000008 | 
| statistics      | 0.000012 | 
| preparing      | 0.000011 | 
| executing      | 0.000004 | 
| Sorting result     | 0.125893 | 
| Sending data     | 0.000076 | -- here 
| end       | 0.000005 | 
| query end      | 0.000002 | 
| closing tables     | 0.000005 | 
| freeing items     | 0.000005 | 
| Waiting for query cache lock | 0.000001 | 
| freeing items     | 0.000012 | 
| Waiting for query cache lock | 0.000001 | 
| freeing items     | 0.000001 | 
| storing result in query cache | 0.000013 | 
| logging slow query    | 0.000001 | 
| cleaning up     | 0.000002 | 
+--------------------------------+----------+ 

更新:在使用查詢緩存時,狀態可能爲sending cached result to clien