MySQL では、特定のクエリの行数を計算するためにほぼ毎日「COUNT」関数を使用します。パフォーマンスに関するすべての開発者の最大のジレンマは、「COUNT(*)」と「COUNT(id)」のどちらを使用する方が良いかということです。
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 サイトの他の関連記事を参照してください。