Таблица в памяти в PostgreSQL

Как создать таблицу в памяти в PostgreSQL?

3 ответов


создайте RAM-диск с помощью программного обеспечения, соответствующего вашей ОС. Использовать CREATE TABLESPACE до создать кластер БД на RAM-диск. Когда ты создать ваш стол, используйте TABLESPACE предложения. Очевидно, что ваши таблицы RAM не будут сохраняться при перезагрузке системы, если вы не сохраните RAM-диск.


Ну, технически это не в таблица, но вы можете создать глобальную временную таблицу:

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

не гарантируется, что он останется в памяти все время, но, вероятно, будет (если это не огромная таблица).

вы также можете рассмотреть незарегистрированные таблицы PostgreSQL 9.1, которые дадут вам лучшую производительность за счет невозможности быть частью транзакций (их операции записи не поддерживаются в WAL).


вы также можете рассмотреть незаполненные таблицы 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)
)

Я планирую попробовать это, и подумал, что он заслуживает собственного ответа для пользователей, чтобы проголосовать за этот вариант (т. е. "длинный хвост").