2011-10-16 3 views
11

PostgreSQL에서 인 메모리 테이블을 만들려면 어떻게해야합니까?PostgreSQL의 인 메모리 테이블

create global temporary table foo (a char(1)); 

이 메모리에 전체 시간이 남아 있음을 보장하지만 아니에요 아마 것입니다 :

답변

13

OS에 적합한 소프트웨어를 사용하여 RAM 디스크를 만드십시오. RAM 디스크에 CREATE TABLESPACE ~ create DB 클러스터를 사용하십시오. create 테이블을 사용하는 경우 TABLESPACE 절을 사용하십시오. RAM 디스크를 저장하지 않으면 RAM 테이블이 시스템 재부팅시에도 지속되지 않습니다.

7

글쎄, 당신이 전역 임시 테이블을 만들 수 있습니다, 메모리 테이블에 기술적으로 아니지만, (거대한 테이블이 아니라면).

PostgreSQL 9.1의 로그되지 않은 테이블을 고려해 볼 수도 있습니다. 트랜잭션의 일부가 될 수없는 비용으로 더 나은 성능을 제공합니다 (쓰기 작업은 WAL에서 유지 관리되지 않습니다).

+0

빠른 답변을 제공해 주셔서 감사합니다. – PHPst

+13

"global"은 PostgreSQL의 노이즈 일뿐입니다. 다른 RDBMS와의 호환성에 유용 할 수 있습니다. 나는 [매뉴얼 인용] (http://www.postgresql.org/docs/9.1/interactive/sql-createtable.html#SQL-CREATETABLE-COMPATIBILITY) :'선택적으로, TEMPORARY 또는 TEMP 앞에 GLOBAL 또는 LOCAL을 쓸 수있다. 이것은 PostgreSQL에서 아무런 차이가 없습니다 ... ' –

+0

임시 테이블이 메모리로 이동하는 양을 제한하는 설정이 있는지 알고 있습니까? – tothphu