172 похожих чатов

Всем привет, задался вопросом, есть ли разница по скорости между

select count(*) from table и select count(id) from table ?)

13 ответов

8 просмотров

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

Это разные запросы. Если в столбце id будут встречаться null, то результат будет отличаться

Павел- Автор вопроса
Nick Nalbantov
Это разные запросы. Если в столбце id будут встреч...

ну если учесть, что id - это PK not null то count(*) / count(id) это одно и то же и разница только в написании?

Павел
ну если учесть, что id - это PK not null то count(...

В PG count(PK) вроде всё равно делает seq scan, а не PK-индекс читает (в Oracle вроде так было, давно не проверял), так что разница будет околонулевая, скорее всего. Зато точно не стоит делать в PG count(1) и т.п. - это 100% будет медленнее, чем count(*), потому что PG честно парсит, подставляет в каждую строку и проверяет на null выражение в count. В других СУБД это не всегда так, в Oracle count(1) и count(*) - синонимы.

см. https://www.postgresql.org/message-id/flat/df354b76-a645-73fc-9645-4508e5291d71%40gmx.net

Nikolay Gladkov
см. https://www.postgresql.org/message-id/flat/df3...

Ну там разница на границе погрешности, если не считать миллионы строк. Но в принципе, я не понимаю, откуда распространилась идея писать count(1). Для подсчета числа строе есть 2 нормальные идиомы: count(*) и count(nullable_field).

Radist
Ну там разница на границе погрешности, если не счи...

почему бы не посчитать миллионы с другой стороны. Tom Lane (вроде, не последний человек) по ссылке подтверждает, что да, они этот момент не оптимизировали

Ну то, что до сих пор никто этого не сделал, говорит о том, что это никому особо не интересно

Radist
Ну то, что до сих пор никто этого не сделал, говор...

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

Radist
Ну там разница на границе погрешности, если не счи...

Емнип, в статьях про оптимизацию мускуля из нулевых такое встречалось. Типа такого: https://web.archive.org/web/20080228084946/http://www.mysqlperformanceblog.com/2007/04/10/count-vs-countcol/

Евгений Смирнов
Емнип, в статьях про оптимизацию мускуля из нулевы...

Да это старые мифы все, oracle вообще count(1) к count(*) при выполнении преобразует 😂

Konstantin Zaitsev
Да это старые мифы все, oracle вообще count(1) к c...

Старые - да, хоть и не совсем мифы, но вроде других источников этой практики не наблюдается.

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
12
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
вопрос по москвину - не понимаю вот такого вопроса похоже Сколько разных всегда завершающихся функций с типом a -> a -> b -> a -> a можно реализовать? Две функции одинаково...
Fedor
11
Кстати, раз про скачивание файлов разговор зашел) Сделал бота для себя (транскрибирующего и суммаризирующего встречи) но не ожидал что за 2 месяца 10к пользователей набежит😅...
Andrey Obolenskiy
8
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Утра доброго. Просветите пожалуйста. Хочу сделать rest сервер на делфи. Посмотрел 3 фреймворка: dmvc, Mars, mormot. Ни в одном из них не упоминается ассинхронная обработка вхо...
Сергей Бычков
10
возможно для форматирования TimeStampZ нужен другой механизм, не?
Роман Лях (rgreat)
13
Карта сайта