просходит на создании индексов. Конфиг 6vcpu,32ГБ памяти, SSD. max workers выставлено 6. По ресурсам проц грузится на 20%,память также. Куда копать чтобы ускорить создание?
maintenance_workers чему равно?
max_parallel которые? 0 стоит.
Типовое админское решение: сначала закачать данные, затем создать индексы (Не утверждаю, что это хорошее решение, но работает)
Если человек дамп разливает, то там create index уже в теле. Выкусывать их что ли?
Если дамп снимали через pg_dump, там уже все возможные трюки для ускорения развёртывания сделаны.
Вообще можно и повыкусывать (дело незитрое) — но если не выпендриыаясь создать pg_dump – то оно само так и будет.
Скорее всего, он заливает дамп в sql текстом
Да, стандартный pg_dump
Так точно. \i file.
Я понял. Если знаешь какой ручкой отключить индексы в ресторе - уже не спрашиваешь. Значит это знание еще не пришло. :)
На сколько я помню — не все.
Что же он не умеет? Из такого, что не зависит от схемы данных.
Тогда файлы пересобери: создание схемы, залив данных, создание индексов
Получить данные в порядке primary key, и создать его сразу, чтобы заполнялся вместе с остальной табоицэй, например. Или дажэ не primary, а в порядке самого большого индэкса. Вообще – там немного оптимизацый, так что всегда можно что-то придумать.
Т.е., сходу кластеризовать таблицу? Это оптимизирует сам индекс, но в итоге, потребует немного больше времени на формирование дампа, плюс я бы предпочёл знать о таком побочном эффекте, в идеале - иметь над ним контроль (вдруг утилита выберет неудачный индекс). В общем-то, pg_dump позволяет такой хитрый дамп приготовить вручную: снимается часть до данных и отдельно часть после данных (есть готовые ключи для этого), а сами данные сливаются вручную командами copy + формируется скрипт для заливки Я что-то такое делал когда надо было слить часть данных с медленного сервака, доступного по не очень быстрому впн-каналу, только задачи сортировки не было
Обсуждают сегодня