ホームページ >データベース >mysql チュートリアル >2 つのクエリを作成せずに MySQL のページネーションを最適化するには?
MySQL のページネーション: 二重クエリを使用しない最適なテクニック
ページネーションは、大規模なデータセットを管理可能なチャンクに分けて表示するための基本的なテクニックであり、多くの場合、2 つの別々の方法が必要です。 MySQL でのクエリ。 1 つのクエリは結果の合計数を取得し、別のクエリはページネーション パラメータに基づいて結果を制限します。
二重クエリ: 従来のアプローチ
伝統的に、ページネーションは次の手順:
クエリを実行して、合計数をカウントします。 results:
SELECT COUNT(*) FROM `table` WHERE `some_condition`
特定のページを表示するように結果を制限します:
SELECT `fields` FROM `table` WHERE `some_condition` LIMIT 0, 10
二重クエリの制限
このアプローチは信頼できますが、次のような問題があります。制限事項:
代替手法
二重クエリは広く使用されている手法ですが、ページネーションの唯一のオプションではありません。代替方法は次のとおりです。
SQL_CALC_FOUND_ROWS および FOUND_ROWS() を使用する
SQL_CALC_FOUND_ROWS を使用してクエリを実行する句:
SELECT `fields` FROM `table` WHERE `some_condition` ORDER BY `field_name`
SELECT FOUND_ROWS() を実行して結果の総数を取得します:
SELECT FOUND_ROWS()
の制限事項SQL_CALC_FOUND_ROWS
キャッシュ
合計数をキャッシュすると、二重クエリと SQL_CALC_FOUND_ROWS 手法の両方のパフォーマンスが大幅に向上します。カウントを一時データベースまたはキャッシュに保存すると、カウント クエリを繰り返し実行することを避けることができます。
最適な手法の選択
アプリケーションに最適なページネーション手法は、アプリケーションによって異なります。データセットのサイズ、パフォーマンス要件、並べ替えまたはフィルター基準の有無など、さまざまな要因に基づいて決定します。次のガイドラインを考慮してください:
以上が2 つのクエリを作成せずに MySQL のページネーションを最適化するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。