Как я могу создать таблицу в памяти в PostgreSQL?
Таблица в памяти в PostgreSQL
Ответы (3)
Создайте RAM-диск с помощью программного обеспечения, подходящего для вашей ОС. Используйте CREATE TABLESPACE
для создания кластера БД на RAM-диске. Когда вы создаете свою таблицу, используйте предложение TABLESPACE
. Очевидно, что ваши RAM-таблицы не сохранятся при перезагрузке системы, если вы не сохраните RAM-диск.
Ну, технически это не таблица в памяти, но вы можете создать глобальную временную таблицу:
create global temporary table foo (a char(1));
Не гарантируется, что он останется в памяти все время, но, вероятно, будет (если это не огромная таблица).
Вы также можете рассмотреть незарегистрированные таблицы PostgreSQL 9.1, которые дадут вам лучшую производительность за счет невозможности участвовать в транзакциях (их операции записи не поддерживаются в WAL).
Optionally, GLOBAL or LOCAL can be written before TEMPORARY or TEMP. This makes no difference in PostgreSQL, ...
- person Erwin Brandstetter; 16.10.2011
Вы также можете рассмотреть незарегистрированные таблицы 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)
)
Я планирую попробовать это и подумал, что это заслуживает отдельного ответа для пользователей, чтобы проголосовать за этот вариант (то есть «длинный хвост»).
UNLOGGED
, я был бы рад удалить этот повторяющийся ответ.
- person yzorg; 19.07.2018