19202


MySQLでcountするときのカラム指定は特にしなくてよいのかどうかという事が気になっています。

職場では`count`の時に限っては`select count(*) from
tables`という風にカラムは全指定にしている人が多いのですが、私は`select count(id) from
tables`という風に`id`を指定する習慣があります。  
自分がいつからカラム指定を始めたのか、またその理由などを覚えていないのですが、なんとなく以下の理由でやってしまっています。

  * カウント文であれ、全指定は本番環境でやるべきではない(というか怖い)
  * カラムが指定されている方がパフォーマンスがよいはず
  * 特にIDだったら殆どの場合存在し、PKである

ただ、どの理由も根拠がありません。  
みなさんはこの理由についてどう思われますか?


CC BY-SA 3.0
2015-11-23T06:47:52.627
19194
2015-11-23T09:39:32.713
9149
question
mysql sql
MySQLのcountのカラム指定の作法について


`count(*)` は単純に行数を返しますが、`count(col)` は col が NULL でない行数を返すという違いがあります。

カラム指定の `count()` の方は、カラムが NULL かどうかの判定をしないといけないので、もしかすると `count(*)`
よりも時間がかかるかもしれません。

`*` を使うのが嫌なのであれば、カラム指定よりも `count(1)` のように定数を指定するという方法もあります。


CC BY-SA 3.0
2015-11-23T09:39:32.713
19202
2015-11-23T09:39:32.713
3249
19194
answer