문제

더 빠른 액세스를 위해 전체 PostgreSQL 데이터베이스를 RAM에 넣으려면 어떻게해야합니까 ?? 8GB 메모리가 있고 DB의 경우 2GB를 전용하고 싶습니다. 공유 버퍼 설정에 대해 읽었지만 데이터베이스의 가장 많이 액세스 한 조각을 캐시합니다. 전체 DB가 RAM에 넣고 RAM DB에서 읽을 수있는 솔루션이 필요하며 모든 쓰기 작업은 먼저 RAM DB에 쓸 수 있으며 하드 드라이브에 DB를 쓸 것입니다 (일부 기본 FSYNC =와 같은 것. PostgreSQL 구성 설정에서 공유 버퍼와 함께).

도움이 되었습니까?

해결책

나는 나 자신에게 한동안 같은 질문을했다. PostgreSQL의 단점 중 하나는 MySQL과 마찬가지로 메모리 저장 엔진을 지원하지 않는 것 같습니다.

어쨌든 나는 안으로 들어갔다 기사 몇 주 전에이 일이 어떻게 이루어질 수 있는지 설명합니다. Linux에서만 작동하는 것 같습니다. 나는 그것을 직접 시도하지 않았기 때문에 그것을 보증 할 수는 없지만 PostgreSQL 테이블 스페이스에 실제로 장착 된 저장소가 할당되기 때문에 의미가있는 것 같습니다.

그러나이 접근법에도 불구하고, 나는 당신이 당신의 색인을 RAM에 넣을 수 있는지 확신하지 못합니다. 나는 MySQL Forces 해시 색인이 메모리 테이블과 함께 사용하지 않는다고 생각하지 않습니다 ... 아무것도 ...

또한 거대한 데이터 세트를 사용하여 성능을 향상시키기 위해 비슷한 일을하고 싶었습니다. 나는 Python을 사용하고 있습니다. 기본적으로 {key : value} 쌍의 형태의 해시 테이블 인 사전 데이터 유형이 있습니다. 이것들을 사용하는 것은 매우 효율적이고 효과적입니다. 기본적으로 PostgreSQL 테이블을 RAM으로 가져 오려면 Python 사전에로드하고 작업하여 DB로 한 번에 DB로 유지합니다. 잘 사용된다면 그만한 가치가 있습니다.

Python을 사용하지 않는 경우, 귀하의 언어에서 비슷한 사전 매핑 데이터 구조라고 확신합니다.

도움이 되었기를 바랍니다!

다른 팁

ID로 데이터를 가져 오는 경우 MemCached를 사용하십시오. http://www.danga.com/memcached/ + postgresql.

아마도 A와 같은 것일 것입니다 Tangosol Coherence 캐시 Java를 사용하는 경우

8GB 데이터베이스 만 있으면 이미 모든 SQL 활동을 최적화하고 하드웨어로 쿼리 문제를 해결 한 경우 문제가 발생할 것을 제안합니다. 이것은 장기적으로 확장 가능한 솔루션이 아닙니다. 소프트웨어 및 데이터베이스 디자인 측면에서 상당한 차이를 만들기 위해 할 수있는 일이 없다고 확신합니까?

구식 Ramdisk를 설정하고 PG에 데이터를 저장하도록 지시하십시오.

그래도 잘 백업해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top