1

많은 수의 레코드가 포함 된 테이블이 있지만 그 중 일부만 항상 "활성"이며 내 웹 앱은 레코드를 참조해야합니다. 매일 밤마다 새로운 (활성) 레코드를 추가하고 오래된 레코드를 다시 활성화하는 업데이트 프로세스가 있습니다.Postgres는 큰 테이블의 "활성"레코드를 자동으로 캐시합니까?

postgres는 활성 레코드를 캐시해야한다는 것을 알 수 있습니까? 그렇지 않다면, 활성 레코드를 새로운 테이블로 옮겨야합니까? 아니면 "힌트"를주는 다른 방법이 있습니까?

UPDATE가 - 활성 레코드를

감사

+0

이러한 레코드가 "활성"상태인지 여부에 대한 자세한 내용을 실제로 확인할 수 있습니다. –

답변

0

난 당신이 "활동 기록"무슨 뜻인지 잘 모르겠습니다 종료일라는 날짜 필드에 NULL 값을 갖는으로 표시됩니다, 포스트 그레스 용어 I 수 있습니다 그냥 그리워. 단순히 "활성"행을 의미한다면, 그것에 인덱스를 놓으십시오. 그런 식으로 포스트 그레스는 행 방향 검색없이 직접 액세스 할 수 있으므로 캐시처럼 (행을 바꿀 때마다 다시 작성)

2

운영 체제는 활성 및 최근 사용한 디스크 블록을 캐시합니다. PostgreSQL은 주로 운영 체제 디스크 캐시에 의존합니다. 그러나 자신의 shared_buffers도 핫 페이지를 캐시합니다.

"이 쿼리는 내가 있어야한다고 생각하는 것보다 느린 것 같습니다."라고 말하는 것처럼 들립니다. http://wiki.postgresql.org/wiki/Slow_Query_Questionshttps://stackoverflow.com/tags/postgresql-performance/info