create table a (x int, y int);
create index a_x_y on a(x, y);
select distinct x from a where y = 1
과 같은 쿼리는 인덱스 만 사용하고 대신 인덱스를 사용하여 y로 필터링 한 다음 비트 맵 힙 스캔을 수행하여 x의 모든 값을 얻습니다.
---------------------------------------------------------------------------------------------------------------------
HashAggregate (cost=15.03..15.05 rows=2 width=4) (actual time=0.131..0.131 rows=0 loops=1)
-> Bitmap Heap Scan on a (cost=4.34..15.01 rows=11 width=4) (actual time=0.129..0.129 rows=0 loops=1)
Recheck Cond: (y = 1)
-> Bitmap Index Scan on a_x_y (cost=0.00..4.33 rows=11 width=0) (actual time=0.125..0.125 rows=0 loops=1)
Index Cond: (y = 1)
이 유형의 쿼리에는 어떤 종류의 인덱스가 필요합니까?
빈 계획이 아니라 실제 계획을 게시하십시오. 최소한 행의 수, 반환되는 행의 수 및 소요 시간을 알아야합니다. – Tometzky