Mysql

我的 SQL 伺服器在不同時間顯示不同的結果和相同的查詢執行

  • November 21, 2012

當我從 MySQL 伺服器執行以下查詢時,即使數據庫穩定並且除我之外的任何人都沒有使用它,它每次都會向我顯示不同的輸出。

SELECT TABLE_NAME , table_rows
FROM information_schema.tables 
WHERE table_schema='DBNAME' 
AND TABLE_TYPE != 'VIEW'

MySQL 伺服器版本:5.1

我對這種行為感到很困惑。

我猜你在 table_row 列中得到不同的行數?這是 InnoDB 表的預期行為。

“對於 InnoDB 表,行數只是 SQL 優化中使用的粗略估計。(如果 InnoDB 表是分區的,這也是如此。”

http://dev.mysql.com/doc/refman/5.1/en/tables-table.html

這裡有更多資訊:http: //dev.mysql.com/doc/refman/5.1/en/innodb-restrictions.html

值得注意的是:“ ANALYZE TABLE 通過對每個索引樹進行八次隨機潛水並相應地更新索引基數估計來確定索引基數(如 SHOW INDEX 輸出的基數列中所示)。因為這些只是估計,所以重複執行 ANALYZE TABLE可能產生不同的數字。這使得 ANALYZE TABLE 在 InnoDB 表上快速但不是 100% 準確,因為它沒有考慮所有行

引用自:https://dba.stackexchange.com/questions/29025