나는 PostgreSQL에 아주 새로운데, 명백한 것이 분명하지 않다면 나를 용서해주십시오. 저는 6 개의 테이블 (모든 테이블에는 기본 키가 있음)에 4 억 5 천만 개의 행이 분산되어있는 데이터베이스가 있습니다. 다음 쿼리를 실행할 때 :이 쿼리로 인해 순차 스캔이 발생하는 이유는 무엇입니까?
SELECT * FROM "Payments" AS p
JOIN "PaymentOrders" AS po ON po."Id" = p."PaymentOrderId"
WHERE po."Id" = 1000
po. "Id"는 기본 키입니다. 나는 단지 VACUUM ANALYZED 전체 데이터베이스입니다. EXPLAIN ANALYZE에 대한 자세한 내용은 here을 참조하십시오. PaymentOrders 테이블에는 4 천만 행이 있고 Payments에는 3 억 5 천만 행이 있습니다. Windows 8 머신에서 x64 PostgreSQL 9.2를 실행 중이며 I5 CPU (4 코어 3.3GHz), 8GB RAM. 또한 내 postgresql.conf 파일 here을 볼 수 있습니다.
누구든지이 쿼리가 Payments 테이블에서 순차적 검색을하는 이유를 알고 있습니까? 잘못되었거나 PostgreSQL에 심각한 결함이 있습니까? PostgreSQL 쿼리 플래너에서 심각하게 의심하기 시작했습니다 ...
버전, 설명 분석, 검색어 텍스트 ... 감사합니다! –