大規模なテーブルのカウント: SELECT COUNT() と mysql_num_rows() の比較
数百万のレコードを含むテーブルをナビゲートする場合、次のことが重要です。行をカウントすることによるパフォーマンスへの影響を考慮してください。 2 つの一般的なオプションは SELECT COUNT() と mysql_num_rows() で、それぞれに独自の長所と短所があります。
SELECT COUNT()
SELECT COUNT() は特別に設計されています。行をカウントするために使用され、結果を保存するためだけにメモリが割り当てられます。実際のデータの取得を回避する内部サーバー プロセスを使用することで効率的に動作します。これは、行数のみが必要な状況に最適です。一方、
mysql_num_rows()
mysql_num_rows() は、結果セット全体を処理します。返されたすべてのレコードにメモリを割り当て、ロックやその他のリソースを大量に消費する操作を含む「フェッチ モード」にサーバーを置きます。このアプローチは、特に大きな結果セットの場合、時間がかかる可能性があります。
検索結果のページネーション
検索結果に基づくページネーションの場合、通常は SELECT COUNT() を使用することをお勧めします。検索条件を SELECT COUNT() ステートメントに組み込むと、別のクエリを実行せずに行数を取得できます。このアプローチにより、クエリの数が減り、全体的なパフォーマンスが向上します。
たとえば、例のように 2 つの個別のクエリを使用する代わりに、
1. $condition = " fname='rinchik' "; 2. $result_count = "SELECT COUNT(id) FROM my_large_table WHERE" . $condition;
コードを次のように変更できます。
$condition = " fname='rinchik' "; $result = "SELECT * FROM my_large_table WHERE" . $condition; $result_count = mysql_num_rows($result);
結論
mysql_num_rows() は行数を提供できますが、大きなテーブルをカウントしたり、テーブルの行数を取得するには SELECT COUNT() を使用する方が効率的な方法です。検索結果。これにより、不必要なデータの取得が回避され、パフォーマンスが大幅に向上します。
以上がSELECT COUNT() と mysql_num_rows(): 大きなテーブルをカウントするにはどちらが適していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。