ホームページ > データベース > mysql チュートリアル > SQL 行数の最適化: `SELECT SQL_CALC_FOUND_ROWS` と `SELECT COUNT(*)` – どちらが速いですか?

SQL 行数の最適化: `SELECT SQL_CALC_FOUND_ROWS` と `SELECT COUNT(*)` – どちらが速いですか?

Mary-Kate Olsen
リリース: 2024-12-22 02:33:17
オリジナル
332 人が閲覧しました

SQL Row Count Optimization: `SELECT SQL_CALC_FOUND_ROWS` vs. `SELECT COUNT(*)` – Which is Faster?

SQL パフォーマンスの最適化: "SELECT SQL_CALC_FOUND_ROWS..." と "SELECT COUNT(*)" の行数の比較

SQL データベース最適化では、テーブル内のレコードの総数を決定することが、ページネーションやその他の操作にとって重要です。このタスクの 2 つの一般的なメソッドは、「SELECT SQL_CALC_FOUND_ROWS...」と「SELECT COUNT(*)」です。

方法 1: "SELECT SQL_CALC_FOUND_ROWS..."

このメソッドは、最初の SELECT クエリで「SQL_CALC_FOUND_ROWS」オプションを使用して、サーバーが合計を返す準備をします。行数。最初のクエリの後、「SELECT FOUND_ROWS()」を使用して合計数を取得できます。

方法 2: "SELECT COUNT(*)"

または、 「SELECT COUNT(*)」を使用して別のクエリを実行し、データ内の合計行を直接カウントできます。 table.

パフォーマンスの比較

行数を決定するための最適な方法は、特定の要因によって異なります。 MySQL パフォーマンス ブログによると、「SQL_CALC_FOUND_ROWS」の効率はインデックスやその他の構成設定によって異なります。

専門家からの観察

Peter Zaitsev、著者MySQL パフォーマンス ブログでは、「SQL_CALC_FOUND_ROWS」は一般に 2 つの別々のクエリを実行するよりも遅いと示唆しています。ほとんどのシナリオに対応します。このブログ投稿の多くのコメンテーターは、「SQL_CALC_FOUND_ROWS」が 10 倍も大幅に遅くなる可能性があるとも指摘しています。

結論

一方、「SELECT SQL_CALC_FOUND_ROWS...」 " は特定の状況では有益な場合がありますが、パフォーマンスが重要な場合は "SELECT COUNT(*)" を使用することを一般的にお勧めします。実行時間を最小限に抑えることが重要なアプリケーション。ただし、ユースケースに最適なアプローチを決定するために、特定のデータと構成で両方の方法をテストすることを常にお勧めします。

以上がSQL 行数の最適化: `SELECT SQL_CALC_FOUND_ROWS` と `SELECT COUNT(*)` – どちらが速いですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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