MySQL での行カウントの高速化
「ステータス」列のインデックス作成にもかかわらず、大規模な MySQL テーブルの行カウントには依然として時間がかかり、質問: このようなクエリを迅速に処理する技術はありますか?結果のキャッシュや個別の集計テーブルの維持などの手法は存在しますが、これらのカウントを直接最適化できますか?
200 万行のサンプル テーブルを使用したベンチマークでは、MyISAM のパフォーマンスが InnoDB (3.0 秒) よりも高速 (0.9 ~ 1.1 秒) であることが明らかになりました。 -3.2 秒)、GROUP BY クエリの場合。ただし、どちらのアプローチも 1 秒未満のパフォーマンスを達成することはできません。
これらの結果にもかかわらず、列ベースのストレージ エンジンなど、直接クエリを高速化する代替方法を検討すると、他のクエリ タイプとのトレードオフが生じる可能性があります。したがって、テーブルのサイズに関係なく瞬時に件数を取得できるようにするために、トリガーを介して概要テーブルを維持することが推奨されるソリューションとして浮上します。
このアプローチを実装するには、提供されているボイラープレート コードを利用して、書籍の挿入、削除、更新のトリガーを作成します。これらのトリガーは、概要テーブル内の各ステータスの書籍数を維持し、あらゆるステータスの効率的な書籍数の取得を保証し、コストのかかる行ごとのスキャンの必要性を排除します。
以上が大規模な MySQL テーブルの行数を高速化するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。