PostgreSQL в памяти

Можно ли настроить PostgreSQL для запуска в памяти, например базы данных H2?

Мне это нужно только в модульных/интеграционных тестах.


person Romper    schedule 10.08.2017    source источник
comment
Вы можете создать табличное пространство, указывающее на tmpfs или альтернативную файловую систему RAM. Не уверен, что это то, что вы хотите. В памяти будут храниться только объекты (таблицы, индексы и т. д.), указывающие на это табличное пространство.   -  person Łukasz Kamiński    schedule 10.08.2017
comment
Вы также можете установить PGDATA для ramfs, а затем initdb для db. Все исчезнет при перезагрузке и т.д.   -  person Scott Marlowe    schedule 10.08.2017
comment
@ ŁukaszKamiński Нет, ужасный совет, не делай этого. Вместо этого initdb совершенно новая БД в файле tempfs. Никогда не советуйте помещать табличные пространства во временное хранилище.   -  person Craig Ringer    schedule 11.08.2017
comment
Проголосовали против из-за очевидного отсутствия усилий с базовым поиском, прежде чем спрашивать. stackoverflow.com/q/7872693/398670, stackoverflow.com/q/21288667/398670, stackoverflow.com/q/11764487/398670, ...   -  person Craig Ringer    schedule 11.08.2017
comment
также stackoverflow.com/q/9407442/398670   -  person Craig Ringer    schedule 11.08.2017
comment
@CraigRinger как насчет местных тестов?   -  person fider    schedule 17.11.2020
comment
@fider Вы можете сделать это, если хотите, но это довольно бессмысленно. Вы можете initdb создать новую базу данных в tempfs (Linux), которая почти такая же. Но на современной платформе вы должны увидеть минимальную разницу в производительности, если вместо этого вы initdb используете одноразовый экземпляр в своей обычной файловой системе и запускаете его с отключенными настройками долговечности — fsync=off, synchronous_commit=off и т. д. В любом случае ОС должна хранить большую часть этого в памяти. . Когда я тестирую, я вижу минимальную разницу в производительности между использованием настоящего ramdisk, tempfs или недолговременного postgres на реальном хранилище.   -  person Craig Ringer    schedule 19.11.2020