熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> MySQL >> 正文

高性能MySQL:剖析單條查詢(2)[2]

2022-06-13   來源: MySQL 

  使用SHOW STATUS

  MySQL 的SHOW STATUS 命令返回了一些計數器既有服務器級別的全局計數器也有基於某個連接的會話級別的計數器例如其中的Queries注 在會話開始時為每提交一條查詢增加如果執行SHOW GLOBAL STATUS(注意到新加的GLOBAL 關鍵字)則可以查看服務器級別的從服務器啟動時開始計算的查詢次數統計不同計數器的可見范圍不一樣不過全局的計數器也會出現在SHOW STATUS 的結果中容易被誤認為是會話級別的千萬不要搞迷糊了在使用這個命令的時候要注意幾點就像前面所討論的收集合適級別的測量值是很關鍵的如果打算優化從某些特定連接觀察到的東西測量的卻是全局級別的數據就會導致混亂MySQL 官方手冊中對所有的變量是會話級還是全局級做了詳細的說明

  SHOW STATUS 是一個有用的工具但並不是一款剖析工具SHOW STATUS 的大部分結果都只是一個計數器可以顯示某些活動如讀索引的頻繁程度但無法給出消耗了多少時間SHOW STATUS 的結果中只有一條指的是操作的時間(Innodb_row_lock_time)而且只能是全局級的所以還是無法測量會話級別的工作

  盡管SHOW STATUS 無法提供基於時間的統計但對於在執行完查詢後觀察某些計數器的值還是有幫助的有時候可以猜測哪些操作代價較高或者消耗的時間較多最有用的計數器包括句柄計數器(handler counter)臨時文件和表計數器等在附錄B 中會對此做更詳細的解釋下面的例子演示了如何將會話級別的計數器重置為然後查詢前面(使用SHOW PROFILE一節)提到的視圖再檢查計數器的結果

  mysql> FLUSH STATUS;

  mysql> SELECT * FROM sakilanicer_but_slower_film_list;

  [query results omitted]

  mysql> SHOW STATUS WHERE Variable_name LIKE Handler%

  OR Variable_name LIKE Created%;

  +++

  | Variable_name | Value |

  +++

  | Created_tmp_disk_tables | |

  | Created_tmp_files | |

  | Created_tmp_tables | |

  | Handler_commit | |

  | Handler_delete | |

  | Handler_discover | |

  | Handler_prepare | |

  | Handler_read_first | |

  | Chapter :Profiling Server Performance

  | Handler_read_key | |

  | Handler_read_next | |

  | Handler_read_prev | |

  | Handler_read_rnd | |

  | Handler_read_rnd_next | |

  | Handler_rollback | |

  | Handler_savepoint | |

  | Handler_savepoint_rollback | |

  | Handler_update | |

  | Handler_write | |

  +++

       返回目錄高性能MySQL

       編輯推薦

       ASP NET開發培訓視頻教程

  數據倉庫與數據挖掘培訓視頻教程

       Oracle索引技術

[]  []  


From:http://tw.wingwit.com/Article/program/MySQL/201311/29709.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.