ホームページ  >  記事  >  データベース  >  MySQL クエリの行を効率的にカウントするにはどうすればよいですか?

MySQL クエリの行を効率的にカウントするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-03 21:56:03676ブラウズ

How to Efficiently Count Rows in Your MySQL Queries?

MySQL でのクエリ実行と行カウント

MySQL クエリによって返される行数をカウントすることは、さまざまなデータベース操作にとって重要です。この記事では、さまざまなシナリオやテクニックに対応した、このタスクに対する包括的なソリューションを提供します。

クエリ結果の合計行数をカウントする

合計を取得する最も簡単な方法行数は、結果を反復処理してカウンターをインクリメントします。ただし、MySQL には、行の直接カウントを提供する組み込み関数 mysql_num_rows が用意されています。たとえば、PHP では、mysqli_num_rows を次のように使用できます。

<code class="php"><?php
$result = mysqli_query($link, "SELECT * FROM table1");
$num_rows = mysqli_num_rows($result);
echo "$num_rows Rows\n";
?></code>

特定の条件に一致する行のカウント

特定の条件を満たす行をカウントするには、次のように使用します。 COUNT(*) 関数。たとえば、bar が 'value' に等しい行をカウントするには:

SELECT COUNT(*) FROM foo WHERE bar= 'value';

LIMIT で行数を保持

LIMIT 句を使用する場合、制限を適用せずに合計行数を知りたい場合は、SQL_CALC_FOUND_ROWS に続いて SELECT FOUND_ROWS() を使用します。例:

<code class="sql">SELECT SQL_CALC_FOUND_ROWS * FROM foo WHERE bar="value" LIMIT 10;
SELECT FOUND_ROWS();</code>

ただし、SQL_CALC_FOUND_ROWS は MySQL 8.0.17 の時点で非推奨となり、以降のバージョンでは削除されることに注意してください。カウントを計算するには別のクエリを使用することをお勧めします。

gt;大規模なテーブルのベスト プラクティス

大規模なテーブルの場合、カウント用に別のクエリを実行することができます。非効率的です。代わりに、より複雑なクエリを起動する前に、単純なクエリを 1 回実行して再利用することでカウントをキャッシュすることを検討してください。

以上がMySQL クエリの行を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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