Ejemplo muy simple - una tabla, un índice, una consulta:¿Por qué PostgreSQL realiza un escaneo secuencial en una columna indexada?
CREATE TABLE book
(
id bigserial NOT NULL,
"year" integer,
-- other columns...
);
CREATE INDEX book_year_idx ON book (year)
EXPLAIN
SELECT *
FROM book b
WHERE b.year > 2009
me da:
Seq Scan on book b (cost=0.00..25663.80 rows=105425 width=622)
Filter: (year > 2009)
Por qué no realiza exploración de índice en su lugar? ¿Qué me estoy perdiendo?
El 5-10% depende de un par de ajustes de configuración y el almacenamiento de los datos también. No es un número difícil. –
@Frank: es por eso que dije "aproximadamente" :) Pero gracias por señalarlo –
Interesante, eso explica muchas cosas para mí :) De hecho, cuando selecciono por año> 2010 lo hace index scan. ¡Gracias! – wajda