Por que o PostgreSQL varre sequencialmente a tabela para COUNT(*)
consulta, enquanto há uma chave primária muito pequena e indexada?
Por que o PostgreSQL varre sequencialmente a tabela para COUNT(*)
consulta, enquanto há uma chave primária muito pequena e indexada?
As páginas wiki oficiais dão uma resposta para isso:
Além disso, você pode tentar um ANALYZE para reconstruir as informações para o planejador de consulta.
Você deve obter um melhor desempenho usando,
COUNT(an uniquly indexed field)
mas se for muito grande, uma varredura seq é a única maneira de fazer isso.Se você precisa de números muito rápidos e não tem medo de consultar o esquema, pode fazer o seguinte
Mas não confie nesses valores, pois é apenas um número "estimado" (embora geralmente o exato) de tuplas na tabela.