SELECT COUNT() と mysql_num_rows(): 大きなテーブルをカウントするにはどちらが適していますか?

DDD
リリース: 2024-11-01 05:13:27
オリジナル
804 人が閲覧しました

SELECT COUNT() vs mysql_num_rows(): Which is Better for Counting Large Tables?

大規模なテーブルのカウント: 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!