SQL - разница между COUNT(1) и COUNT(*)?

328
26 сентября 2017, 05:54

Какая разница между COUNT(1) и COUNT(*)?

Answer 1

Это два эквивалентных запроса. Причем в MySQL если вы используете MyISAM движок, то COUNT(*) будет выполнен очень быстро, если используется SELECT из одной таблицы и нет WHERE условия, поскольку информация о количестве строк будет храниться в специальном хранилище.
Для COUNT(1) эта оптимизация так же сработает, но при условии, что первый столбец объявлен как NOT NULL.

Дополнительно можно почитать здесь

Answer 2

Разницы нет. Оба варианта вернут одинаковый результат. По производительности тоже различий не будет, т.к. оптимизатор не станет преобразовывать * в список столбцов за ненадобностью.

PS очень рекомендую ознакомиться с ответами по ссылке приведенной @Алексей Шиманский

PPS SQLFiddle (MySQL) показывающий работу COUNT(*), COUNT(1) и count(NULL) в случае использования JOIN'ов

READ ALSO
Где взять библиотеку javax.sound.sampled?

Где взять библиотеку javax.sound.sampled?

Требуется генерировать звуковые волныВ примерах предлагается использовать библиотеку javax

272
Окно выбора в Android

Окно выбора в Android

Как называется окно в Android, при нажатии на которое, открывается окно выбора чего-либо? На подобии пикера

260
В чём разница: Class a & Class<?> a?

В чём разница: Class a & Class<?> a?

Скажите пожалуйста, чем отличаются два случая:

324
Нужный компонент [требует правки]

Нужный компонент [требует правки]

Ищу компонент на подобии такого: http://joxiru/ZrJy93Kh9ONKoA Суть в том, чтобы был параметр и к нему флажок включён\выключен

257