2016-09-16 6 views
0

내 사용자 테이블에 아직 행 수가 많지 않습니다.PostgreSQL 쿼리 계획이 테이블 행 수에 의존합니까?

동일한 쿼리의 쿼리 계획이 테이블이 커질 때 변경 될 수 있습니까?

예를 들어 EXPLAIN을 사용하기 전에 내 users 테이블에 10 억 개의 행을 채워야합니까?

+1

예 ** 계획 수 **는 행 수가 증가함에 따라 변경됩니다. –

+0

K. 고마워. 음 ... 다음으로, 내 사용자 테이블을 시드하는 좋은 방법을 찾을 것입니다. – ma11hew28

답변

2

예상 행 수는 아마도 쿼리 계획을 선택하는 데 가장 중요한 요소 일 수 있습니다. 이 기능을 지원

두 가지 예 : 당신이 테이블의 인덱스 컬럼에 WHERE 조건을 사용하는 경우

  • 는 세 가지 결과가 나타날 수 있습니다

    1. 을 테이블이 매우 작거나 경우 높은 비율의 행이 조건과 일치하면 순차적 검색이 전체 테이블을 읽고 조건과 일치하는 행을 필터링하는 데 사용됩니다.

    2. 테이블이 크고 행의 비율이 낮은 경우 인덱스 스캔이 사용됩니다.

    3. 테이블이 크고 조건의 중 간 비율이 조건과 일치하면 비트 맵 인덱스 스캔이 사용됩니다.

  • 두 테이블을 조인 할 경우 테이블의 예상 행 수에 따라 중첩 루프 조인이 선택되었는지 여부가 결정됩니다.