Можно ли настроить PostgreSQL так, чтобы случайные массовые обновления могли выполняться очень быстро? - PullRequest
0 голосов
/ 05 декабря 2018

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

Однако, поскольку это тестовая среда, иногда приходится применять некоторые уникальные, экспериментальные, временные или специальные изменения.Например, добавление или удаление некоторых индексов перед тестом производительности, пересчет значения столбца для репликации условий теста, дамп и повторное импортирование целых таблиц и т. Д.

Существует ли способ временно приостановить гарантии целостности данных, чтобычтобы выполнить такие типы массового обновления как можно быстрее?

Например, в MySQL вы можете установить буферы записи увеличенного размера, отключить ведение журнала транзакций и приостановить очистку диска при фиксации транзакции.Есть ли что-то похожее в pgsql?

Средой развертывания является AWS EC2.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

В руководстве есть глава, посвященная начальной загрузке базы данных.

Есть несколько безопасных опций, которые можно изменить, чтобы ускорить процесс:

Тогда есть несколько небезопасных вариантов, чтобы сделать вещи быстрее.Небезопасное значение: вы можете потерять все свои данные в случае сбоя сервера - так что используйте на свой страх и риск!

Опять же: при изменении двух вышеуказанных настроек вы рискуете потерять все свои данные .

Чтобы отключить WAL, вы также можете установить все таблицы на unlogged

0 голосов
/ 05 декабря 2018

Вы можете отключить ведение журнала WAL с помощью ALTER TABLE ... SET UNLOGGED, но имейте в виду, что обратная операция выведет всю таблицу в WAL.

Если это невозможно, вы можете повысить производительность, установив max_wal_size hughтак что вы получаете меньше контрольных точек.

Сброс WAL отключен установкой fsync = off.

Имейте в виду, что первая и третья мера разрушат вашу базу данных в случае сбоя.

...