MySQL クエリ オプティマイザーについて: COUNT(id) と COUNT(*)

WBOY
リリース: 2024-07-18 04:35:10
オリジナル
377 人が閲覧しました

Understanding MySQL Query Optimizer: COUNT(id) vs COUNT(*)

MySQL では、特定のクエリの行数を計算するためにほぼ毎日「COUNT」関数を使用します。パフォーマンスに関するすべての開発者の最大のジレンマは、「COUNT(*)」と「COUNT(id)」のどちらを使用する方が良いかということです。


MySQL オプティマイザー

MySQL オプティマイザーは、特定の SQL クエリを実行する最も効率的な方法を決定する役割を担う MySQL の重要なコンポーネントです。この部分は、「COUNT」が最も速いというジレンマにおいて重要な役割を果たします。それでは説明しましょう...

「first_name」列にインデックスを持つ「users」テーブルを作成します。

リーリー

いくつかの行を追加し、次の 2 つのクエリを実行します:

リーリー リーリー

これら 2 つの SQL クエリを実行すると、同じインデックスが使用されていることがわかります。「COUNT(*)」はまったく遅くありません。MySQL オプティマイザーがこれを担当し、テーブル内のインデックスを検索して、最高のパフォーマンス。この場合、両方のクエリは同じインデックスを使用し、MySQL オプティマイザーがそのインデックスが最も効率的であると判断したため、両方のクエリは同じ速度でデータを返します。

MySQL Optimizer は、指定されたクエリができるだけ早くデータを返すように、最適なインデックス キーの選択に寄与する多くのパラメーターを考慮します。


結論

「COUNT(*)」の使用は、MySQL オプティマイザーが最も効率的なアプローチを選択できるため、一般的に推奨されますが、「COUNT(column_name)」は、NULL 以外の値のみをカウントする必要がある状況で特に役立ちます。特定の列で。最適なクエリ パフォーマンスを達成するには、MySQL オプティマイザーの仕組みとインデックスの使用方法を理解することが重要です。

以上がMySQL クエリ オプティマイザーについて: COUNT(id) と COUNT(*)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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