無法信任 phpMyAdmin 中的行計數?
在 phpMyAdmin 中,您可能會遇到具有以下特徵的表的估計行數有顯著差異:保持不變。這種令人費解的不一致現象可歸因於底層資料庫引擎對行計數的處理。
與維護準確行計數的 MyISAM 表不同,像您範例中的 InnoDB 表缺乏此功能。為了確定準確的行數,InnoDB 必須煞費苦心地掃描表中的每一行,這使得大型表的 SELECT COUNT(*) 查詢的計算成本很高。
phpMyAdmin 使用 SHOW TABLE STATUS 查詢來擷取估計的行從 InnoDB 計數。然而,每次執行時,這個近似值都會有所不同,可能會導致與實際計數有很大偏差。
MySQL 手冊承認此限制:「對於 InnoDB 等儲存引擎,該值 [來自 SHOW TABLE STATUS」 ] 是一個近似值,可能與實際值相差 40 到 50%。 ”
對於精確的行計數,手冊建議使用選擇計數(*)。此外,InnoDB 文件解釋說,並發事務可能會導致同時「看到」不同的行計數,從而使內部行計數變得不切實際。可以提供估計值,但它無法提供絕對值精確。
以上是為什麼 phpMyAdmin 顯示 InnoDB 表的行數不一致?的詳細內容。更多資訊請關注PHP中文網其他相關文章!