아주 간단한 예 - 하나 개의 테이블, 하나 개의 인덱스, 하나 개의 쿼리는 :왜 PostgreSQL은 인덱스 된 컬럼에 대해 순차적 스캔을 수행합니까?
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
저를 제공합니다
Seq Scan on book b (cost=0.00..25663.80 rows=105425 width=622)
Filter: (year > 2009)
는 왜 인덱스 대신 검사 수행하지 않는 이유는 무엇입니까? 내가 무엇이 누락 되었습니까?
5-10 %는 몇 가지 구성 설정과 데이터 저장에 따라 다릅니다. 어려운 번호가 아닙니다. –
@ 프랭크 : 그 이유는 "대략"이라고 말한 이유입니다. 그러나 그것을 지적 해 주셔서 감사합니다. –
재미 있고, 저에게 많은 것들이 설명되어 있습니다 :) 실제로 올해> 2010 년까지 인덱스 스캔을 선택합니다. 감사합니다. – wajda