Возможный дубликат:
Count (*) vs Count (1)
Я вспоминаю анекдотически:
никогда не использовать count (*), когда count (1) будет делать
Недавно я передал этот совет другому разработчику, и мне было предложено доказать, что это правда. Мой аргумент был тем, о чем мне говорили, когда мне дали совет: база данных вернет только первый столбец, который затем будет подсчитан. Контраргумент заключался в том, что база данных ничего не будет оценивать в скобках.
От некоторых (ненаучных) тестов на небольших таблицах, конечно, нет разницы. В настоящее время у меня нет доступа к большим таблицам для экспериментов.
Мне дали этот совет, когда я использовал Sybase, а в таблицах было сотни миллионов строк. Теперь я работаю с Oracle и значительно меньше данных.
Итак, я думаю, что мои два вопроса:
- Что быстрее, count (1) или count (*)?
- Будет ли это отличаться у разных поставщиков баз данных?