select count (*)、count(1)、count(column)的区别如下:
- count(1) 中的 1 并不是表示为第一个 column
- count(*) 跟 count(1) 的结果一样,包括对NULL的统计
- count(column) 是不包括对NULL的统计
- 如果表沒有主键(Primary key), 那么count(1)比count(*)快
- 如果表没有主键,只建了索引,那么count(*),count(1)是一样的,都是TABLE ACCESS FULL ,而count(索引)则是INDEX FULL SCAN
- 如果有主键的話,那count(主键)最快,那么count(*),count(1),以及count(主键)是一样的,都是INDEX FULL SCAN
- 如果你的表只有一个字段的话那count(*)就是最快的