Ответ 1
Я задал себе тот же вопрос некоторое время. Одним из недостатков PostgreSQL является то, что он, похоже, не поддерживает двигатели хранения IN MEMORY, как это делает MySQL...
В любом случае я столкнулся с статьей пару недель назад, описывая, как это можно сделать; хотя он работает только в Linux. Я действительно не могу ручаться за него, потому что я сам его не пробовал, но, похоже, это имеет смысл, поскольку табличное пространство PostgreSQL действительно назначено смонтированным репозиторием.
Однако даже при таком подходе я не уверен, что вы могли бы поместить ваши индексы в оперативную память; Я не думаю, что MySQL заставляет индекс HASH использовать его таблицу IN MEMORY ни для чего...
Я также хотел сделать аналогичную вещь для повышения производительности, поскольку я также работаю с огромными наборами данных. Я использую python; у них есть словарные типы данных, которые являются в основном хэш-таблицами в виде пар {ключ: значение}. Их использование очень эффективно и эффективно. В принципе, чтобы получить таблицу PostgreSQL в ОЗУ, я загружаю ее в такой словарь python, работаю с ней и время от времени сохраняю ее в db; его стоит, если он хорошо используется.
Если вы не используете python, я уверен, что это аналогичная структура данных, сопоставляющая словари на вашем языке.
Надеюсь, это поможет!