ホームページ > データベース > mysql チュートリアル > phpMyAdmin が InnoDB テーブルに対して一貫性のない行数を表示するのはなぜですか?

phpMyAdmin が InnoDB テーブルに対して一貫性のない行数を表示するのはなぜですか?

DDD
リリース: 2024-12-03 09:19:12
オリジナル
302 人が閲覧しました

Why Does phpMyAdmin Show Inconsistent Row Counts for InnoDB Tables?

phpMyAdmin の行数を信頼できませんか?

phpMyAdmin では、次のようなテーブルの推定行数に大きな差異が発生する可能性があります。は変わらずでした。この不可解な不一致は、基礎となるデータベース エンジンの行カウントの処理に起因している可能性があります。

正確な行カウントを維持する MyISAM テーブルとは異なり、例のような InnoDB テーブルにはこの機能がありません。正確な行数を決定するために、InnoDB はテーブル内のすべての行を入念にスキャンする必要があるため、大規模なテーブルでは SELECT COUNT(*) クエリの計算コストが高くなります。

phpMyAdmin は SHOW TABLE STATUS クエリを利用して推定行を取得します。 InnoDB からカウントします。ただし、この近似値は実行するたびに変化するため、実際のカウントから大きく乖離する可能性があります。

MySQL マニュアルでは、この制限について次のように認めています。「InnoDB などのストレージ エンジンの場合、この値は [SHOW TABLE STATUS より] ] は近似値であり、実際の値とは 40 ~ 50% も異なる場合があります。"

正確な行数については、マニュアルを参照してください。 SELECT COUNT(*) の使用をお勧めします。さらに、InnoDB のドキュメントでは、同時トランザクションにより異なる行数が同時に「表示」される可能性があり、内部行数のカウントが非現実的になる可能性があると説明されています。

したがって、SHOW TABLE STATUS は推定値を提供することはできますが、絶対的な値を提供するには至っていません。精度。正確かつ一貫した行カウントを行うには、アプリケーションによって維持されるカウンター テーブルを実装するか、MySQL クエリ キャッシュを利用してパフォーマンスを最適化することを検討してください。

以上がphpMyAdmin が InnoDB テーブルに対して一貫性のない行数を表示するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート