ページネーションの戦い: SQL_CALC_FOUND_ROWS 対 COUNT(*)
データベースのページネーションの領域では、どちらが支配的であるかという疑問が生じます。最高の効率 - SQL_CALC_FOUND_ROWS または COUNT(*) メソッドレコードの合計数を確認するには?
方法 1: SQL_CALC_FOUND_ROWS
この手法では、SQL_CALC_FOUND_ROWS を元の SELECT クエリに追加し、その後 FOUND_ROWS() を実行して合計を取得する必要があります。レコード数。
メソッド2: COUNT(*)
このメソッドでは、プライマリ クエリが通常どおり実行され、その後に別の SELECT COUNT(*) クエリが実行されて合計数が取得されます。
評決: 状況に応じたパフォーマンス
最も迅速なアプローチに対する答えは、状況に応じた要因によって異なります。 MySQL のパフォーマンス ブログによると、意思決定プロセスでは、インデックス構成やその他のデータベース固有の考慮事項などの要素を考慮する必要があります。
ブログ投稿に対する多数のユーザー コメントは、SQL_CALC_FOUND_ROWS が 2 つのクエリを直接発行するよりも遅いことが多いことを示唆しています。場合によっては最大 10 倍遅くなる場合もあります。
したがって、2 つのオプションを比較検討するときは、特定のデータベース環境、インデックス構造、全体的なパフォーマンス目標を考慮して、情報に基づいた意思決定を行います。
以上がSQL_CALC_FOUND_ROWS と COUNT(*): データベースのページネーションではどちらの方法が速いですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。