Re: Думы по поводу count(*)
От
Ivan Zolotukhin
Тема
Re: Думы по поводу count(*)
Дата
Msg-id
751e56400803071400u6c0e9b53tc41a1342d1fa0737@mail.gmail.com
Ответ на
Думы по поводу count(*) (Kuzma Feskov)
Список
Дерево обсуждения
Думы по поводу count(*) Kuzma Feskov <kuzma@russofile.ru>
Re: Думы по поводу count(*) "Ivan Zolotukhin" <ivan.zolotukhin@gmail.com>
2008/3/7 Kuzma Feskov : > прочитал кучу материала на сей счет. в частности про рекомендации > уважаемого sad Spirit'a. Он там рекомендует пользоваться результатами > analyse или написать тригеры. наверное, имеется в виду не analyze, а explain? > Но все это подходит к линейным запроса, без условий. а таких запросов > единицы. Как вы боретесь с тормознутостью count(*) если в запросе > есть условия, например посчитать все записи, у которых нет пометки > is_deleted? или например count(*) + JOIN? не верно. для запросов с условиями приблизительная оценка из explain-а подходит, попробуйте сами. не забывайте только делать analyze и/или не отключайте autovacuum. для джойнов тоже должно работать, но нужно исследовать. мы используем подсчет кол-ва рядов не через count(*), а через explain, уже в нескольких крупных проектах и полностью довольны этим методом. триггер имеет смысл использовать только если необходимо знать абсолютно точное значение, в подавляющем большинстве сложных случаев приблизительной оценки достаточно.
В списке pgsql-ru-general по дате отправления