Я работаю над программным обеспечением, которое первоначально заполняет таблицы большим количеством данных (режим массовой рассылки), после чего переключается в «нормальный» режим работы.
Чтобы сделать режим массовой рассылки быстрым, яm, начиная с UNLOGGED таблиц почти без индексов (среди прочего).
После загрузки всех исходных данных я переключаюсь в нормальный режим: я создаю индексы и изменяю таблицы, чтобы они снова становились LOGGED.
Мой вопрос: с точки зрения производительности - есть ли разница в порядке создания индексов и перехода на таблицы LOGGED?С точки зрения надежности кажется, что чем быстрее я переключусь на LOGGED, тем лучше (меньше шансов потерять все мои драгоценные данные).Но придется ли мне платить за это вовремя, чтобы создать все индексы?
В моих начальных тестах кажется, что ALTER TABLE x SET LOGGED
занимает довольно много времени, чего я не понимаю, потому чтоЯ думал, что это влияет только на операции после него, и само по себе это почти NO-OP.
Мой PG:
PostgreSQL 9.6.11 на x86_64-pc-linux-gnu, скомпилированный gcc (GCC) 7.3.0, 64-битный
, хотя я спрашиваю более широко.Любые ссылки на вещи, которые помогут мне понять, что именно происходит с UNLOGGED
и LOGGED
(особенно в сочетании с указаниями), также приветствуются.