Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 15920|Ответ: 1

[Источник] Неправильное понимание count(0) и count(*) в SQL-операторах

[Скопировать ссылку]
Опубликовано 10.08.2017 13:29:00 | | |
В последнее время числовая функция используется очень часто, и когда число считается относительно большим, выясняется, что count(*) занимает больше времени, а count(1) — меньше.

Некоторые документы содержат следующие заявления:

Если в вашей таблице данных нет первичного ключа, то count(1) работает быстрее, чем count(*).  
Если есть первичный ключ, то первичный ключ (совместный первичный ключ) также быстрее count(*).  
Если в вашей таблице только одно поле, то count(*) — самый быстрый  
count(*) count(1) Сравните оба варианта. Главное — считать поля данных, соответствующие (1).  
Если count(1) — полииндекс, id, то он должен быть count(1) быстрее. Но разница очень мала.  
Из-за count(*), поле автоматически оптимизируется для указания на . Так что не нужно считать(?), использовать count(*), SQL поможет вам завершить оптимизацию

  Детали подсчета:
count(*) вернёт общее количество всех строк в таблице, включая строки с null-значением,Однако счёт (название столбца) возвращает общее количество всех строк в таблице, кроме нулевой(Также считаются столбцы с значениями по умолчанию).
Отдельное имя столбца, результат будет результатом после удаления нулевого значения и дублирующих данных


Раньше я не знал, что в блоге говорилось, что всем рекомендуют использовать count(0) и что эффективность запросов относительно высокая и так далее

Сегодня выяснилось, что использование count(0) — это заблуждение!!
count(0) Первый столбец статистики не пуст

Не используйте число (название столбца) или count(константа) вместо count(*),

count(*) — это синтаксис для стандартного количества строк, определённых SQL92, который не имеет отношения к базе данных, NULL и не NULL.

Примечание: count(*) считает строки с NULL-значением, тогда как count(название столбца) не учитывает строки с NULL-значением.

Поэтому в будущем, когда вы будете анализировать всю статистику и не исключаете пустые данные, лучше честно использовать количество (*)!!








Предыдущий:Разница между переменными определения let и var в js
Следующий:Jquery реализует таблицу для отображения до 10 элементов данных
Опубликовано 10.08.2017 13:54:00 |
преподавал                 
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com