Ubuntu

Innodb 統計

  • March 22, 2015

我們InnoDB作為 MySQL 引擎執行並使用 phpMyadmin 來管理我們的數據庫。在Status→下Query statistics,phpMyadmin 為我們提供以下資訊:

phpMyAdmin 截圖

我們想知道這些數據來自哪裡,因為我們想創建一個Munin圖表來顯示這些統計數據隨時間的演變。

當我們在SHOW STATUS;這裡執行查詢時,我們得到的是:

Innodb_rows_deleted 247555
Innodb_rows_inserted    822911
Innodb_rows_read    694934413
Innodb_rows_updated 15048

正如您所看到的,儘管兩者幾乎同時服用,但存在很大差異。

問:你知道phpMyadmin它的價值從何而來嗎?

如前所述RolandoMySQLDBA,首先要記住的是和之間的區別SHOW GLOBAL STATUSSHOW STATUS參閱文件)。關於 顯示的值phpMyadmin,它們是從原始碼確認的Com_*變數中獲得的:

server_status.php

   $sql = "SELECT concat('Com_', variable_name), variable_value
   FROM data_dictionary.GLOBAL_STATEMENTS
   [...]

   // For the percentage column, use Questions - Connections, because
   // the number of connections is not an item of the Query types
   // but is included in Questions. Then the total of the percentages is 100.
   $name = str_replace(array('Com_', '_'), array('', ' '), $name);

比較後,似乎phpMyAdmin顯示的是正確的值(即匹配MySQL報告的內容)。

請注意關於顯示狀態的 MySQL 文件

看看這些數字,phpmyadmin 一定在使用SHOW GLOBAL STATUS;,因為它會顯示 MySQL 啟動時的統計資訊。

當您使用SHOW STATUS;時,這會帶回會話級別的統計資訊,當數據庫連接終止時這些統計資訊會變得很糟糕。

引用自:https://serverfault.com/questions/379790