16

如何在 PostgreSQL 中创建内存表?

4

3 回答 3

17

使用适合您的操作系统的软件创建 RAM 磁盘。用于在 RAM 磁盘上创建数据库CREATE TABLESPACE集群创建表时,请使用该子句TABLESPACE。显然,除非您保存 RAM 磁盘,否则您的 RAM 表不会在系统重新启动后持续存在。

于 2011-10-20T04:30:49.417 回答
9

好吧,从技术上讲,它不是内存表,但是,您可以创建一个全局临时表:

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

不能保证它会一直保留在内存中,但它可能会(除非是一个巨大的表)。

您还可以考虑 PostgreSQL 9.1 的未记录表,这将以不能成为事务的一部分为代价(它们的写操作不在 WAL 中维护)为您提供更好的性能。

于 2011-10-16T15:58:58.763 回答
3

您还可以考虑 PostgreSQL 9.1 的未记录表,这将以不能成为事务的一部分为代价(它们的写操作不在 WAL 中维护)为您提供更好的性能。

来自@PabloSantaCruz

来自https://www.compose.com/articles/faster-performance-with-unlogged-tables-in-postgresql/的示例

CREATE UNLOGGED TABLE "EUR/USD_ticks"  
(
  dt timestamp without time zone NOT NULL,
  bid numeric NOT NULL,
  ask numeric NOT NULL,
  bid_vol numeric,
  ask_vol numeric,
  CONSTRAINT "EUR/USD_ticks_pkey" PRIMARY KEY (dt)
)

我打算试试这个,并认为它应该让用户对此选项进行投票(即“长尾”)。

于 2018-07-19T16:04:07.377 回答