ホームページ >データベース >mysql チュートリアル >大規模な MySQL テーブルの行数を高速化するにはどうすればよいでしょうか?

大規模な MySQL テーブルの行数を高速化するにはどうすればよいでしょうか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-21 03:00:13965ブラウズ

How Can We Speed Up Row Counts in Large MySQL Tables?

MySQL での行カウントの高速化

「ステータス」列のインデックス作成にもかかわらず、大規模な MySQL テーブルの行カウントには依然として時間がかかり、質問: このようなクエリを迅速に処理する技術はありますか?結果のキャッシュや個別の集計テーブルの維持などの手法は存在しますが、これらのカウントを直接最適化できますか?

200 万行のサンプル テーブルを使用したベンチマークでは、MyISAM のパフォーマンスが InnoDB (3.0 秒) よりも高速 (0.9 ~ 1.1 秒) であることが明らかになりました。 -3.2 秒)、GROUP BY クエリの場合。ただし、どちらのアプローチも 1 秒未満のパフォーマンスを達成することはできません。

これらの結果にもかかわらず、列ベースのストレージ エンジンなど、直接クエリを高速化する代替方法を検討すると、他のクエリ タイプとのトレードオフが生じる可能性があります。したがって、テーブルのサイズに関係なく瞬時に件数を取得できるようにするために、トリガーを介して概要テーブルを維持することが推奨されるソリューションとして浮上します。

このアプローチを実装するには、提供されているボイラープレート コードを利用して、書籍の挿入、削除、更新のトリガーを作成します。これらのトリガーは、概要テーブル内の各ステータスの書籍数を維持し、あらゆるステータスの効率的な書籍数の取得を保証し、コストのかかる行ごとのスキャンの必要性を排除します。

以上が大規模な MySQL テーブルの行数を高速化するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。