ページ分割 (「LIMIT」句) を使用して複雑な MySQL クエリを実行する場合、合計行数を取得するのは困難な場合があります。合計数の LIMIT 句を使用せずにクエリを 2 回実行すると、非効率になる可能性があります。
幸いなことに、MySQL には SQL_CALC_FOUND_ROWS オプションが導入されており、LIMIT 句を使用しながら合計行数を計算できます。その仕組みは次のとおりです:
クエリの例:
<code class="sql">-- Main query with SQL_CALC_FOUND_ROWS SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10; -- Second query to get row count SELECT FOUND_ROWS();</code>
制限事項と代替案:
SQL_CALC_FOUND_ROWS は便利なソリューションを提供しますが、その使用法は MySQL 8.0.17 では非推奨であることに注意してください。ほとんどの場合、クエリを 2 回実行した方がまだ高速です。
代わりに、MySQL 8.0 では行数を取得するための次の最適化されたオプションが導入されています:
これらの手法を利用することで、開発者は速度やパフォーマンスを犠牲にすることなく、ページ分割された MySQL クエリの合計行数を効率的に取得できます。
以上がSQL_CALC_FOUND_ROWS を使用してページ分割された MySQL クエリの行数を効率的に取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。