슬로우 카운트 (*) 이전 버전 9.2에 관한 몇 가지 토론이 있습니다 (postgres 웹의 공식 게시물 포함). 어떻게 든 나는 만족스러운 대답을 찾지 못했습니다.postgresql 9.2의 슬로우 카운트 (*)
기본적으로 나는 9.1가 설치 포스트 그레스가 있고, 나는 100,000 +의 기록이있는 테이블에서
select count(*) from restaurants;
만큼 간단 느린 COUNT (*)를 관찰했다. 평균 요청은 850ms입니다. Postgres 9.2가 인덱스 전용 스캔과 같은 몇 가지 새로운 기능을 가지고 있기 때문에 사람들이 포스트 그레스 9.1 이하의 느린 카운트에 대해 말한 증상이라고 생각했습니다. 9.1의 동일한 데이터 세트를 사용하여이를 실험하고 9.2에 배치하려고합니다. 나는 count 문을 호출하고 여전히 9.1과 같은 나쁜 결과를 준다.
explain analyze select count(*) from restaurants;
------------------------------------------------------------------
Aggregate (cost=23510.35..23510.36 rows=1 width=0) (actual time=979.960..979.961 rows=1 loops=1)
-> Seq Scan on restaurants (cost=0.00..23214.88 rows=118188 width=0) (actual time=0.050..845.097 rows=118188 loops=1)
Total runtime: 980.037 ms
누구든지이 문제에 대한 가능한 해결책을 제안 할 수 있습니까? 이 기능을 사용하려면 포스트 그레스에 대한 설정이 필요합니까?
P. where 내 경우에도 도움이되지 않습니다.
https://wiki.postgresql.org/wiki/Index-only_scans를 읽었습니까? 거기에'카운트'와 한계에 대한 논의가 있습니다. 해당 테이블에 기본 키가 있습니까? 데이터를로드 한 후 테이블을 VACUUM 및 ANALYZE 했습니까? –
또한'random_page_cost'와'seq_page_cost'는 무엇으로 설정되어 있습니까? 'effective_cache_size'는 어떻습니까? –
크레이그에게 감사드립니다. 나는 당신이 제안한대로 그것을 읽고 VACUUM을했고, 여하튼 그것은 850ms에서 400ms로 속도를 향상시킵니다. 아직도 400ms는 값 비싼 시간입니다. 거기에 어떤 추가 튜닝이 방법을 수정하는 방법 있나요? – Ream