2011-10-16 30 views

回答

13

使用適用於您的操作系統的軟件創建RAM磁盤。在RAM磁盤上使用CREATE TABLESPACEcreate數據庫集羣。當你create你的表,使用TABLESPACE條款。顯然,除非您保存RAM磁盤,否則您的RAM表不會在系統重新啓動時持續存在。

7

好吧,這不是技術上內存表,但是,您可以創建一個全局臨時表:

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

它不能保證,它將保留在內存中的全部時間,但它可能會(除非是一張巨大的桌子)。

您也可以考慮PostgreSQL 9.1的未記錄表格,它將以不能成爲事務一部分的成本(其寫入操作不在WAL中維護)爲代價提供更好的性能。

+0

非常感謝您的快速回答。 – PHPst

+13

除了「全局」只是PostgreSQL中的噪聲。可能對與其他RDBMS兼容有用。我[引用手冊](http://www.postgresql.org/docs/9.1/interactive/sql-createtable.html#SQL-CREATETABLE-COMPATIBILITY):'可選地,GLOBAL或LOCAL可以在TEMPORARY或TEMP之前寫入。這在PostgreSQL中沒有什麼區別,......' –

+0

你知道是否有臨時表的設置來限制它到內存的大小? – tothphu