MySQL の WHERE 句で COUNT(*) を効果的に使用する
カラムの個別の値のカウントが特定のしきい値を超えているかどうかを判断することは一般的ですMySQLのタスク。 WHERE 句で COUNT(*) を使用して結果をフィルタリングするのは簡単そうに見えますが、このようなアプローチは非効率的である可能性があります。
このリソースを大量に消費するアプローチを回避するには、次の代替構文の使用を検討してください。
<code class="sql">SELECT DISTINCT gid FROM `gd` GROUP BY gid HAVING COUNT(*) > 10 ORDER BY lastupdated DESC</code>
GROUP BY 句を使用すると、MySQL は gid の個別の値によって行をグループ化します。次に、HAVING 句は COUNT(*) 集計関数を各グループに適用し、カウントが 10 未満のグループを除外します。最後に、ORDER BY 句は、タイムスタンプ列 lastupdated に基づいて結果を降順に並べ替えます。
このアプローチは、行ごとに 1 回ではなく、個別の値ごとに 1 回だけ集計を実行するため、より効率的です。この最適化により、行数が多いテーブルのパフォーマンスが大幅に向上します。
以上がMySQL の WHERE 句で個別の値を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。