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

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

14 голосов
/ 16 октября 2011

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

Ответы [ 3 ]

16 голосов
/ 20 октября 2011

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

9 голосов
/ 16 октября 2011

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

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

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

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

2 голосов
/ 19 июля 2018

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

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

...