Postgres: следует создавать индексы до или после заполнения таблиц - PullRequest
0 голосов
/ 29 сентября 2019

Я настраиваю базу данных, в которой есть почасовые таблицы.Каждая таблица создается в одной инструкции копирования.Цель таблиц - хранить индексированные сводные данные, хранящиеся в стандартных файлах, которые действительно хорошо сжимаются.Для записи в этих файлах хранятся данные интернет-потока.

Иногда нам нужно искать в течение нескольких месяцев файлы, ища конкретные адреса, и работа по файлам по одному занимает много времени, поэтому целью является создание индексакаждого часового файла, в котором перечислены IP-адреса за этот час.Для поиска мы последовательно просматриваем интересующий нас временной диапазон и каждый час выполняем быстрый поиск, чтобы выяснить, нужно ли нам распаковывать и искать соответствующий файл на диске.

Я использую Postgres, поскольку он поддерживает IPадреса изначально.Поэтому для каждого часа я создаю таблицу с именем, связанным с соответствующим файлом на диске (дата и время, сюрприз).Мне нужны индексы для адресов источника и назначения, но я должен создать эти индексы до или после загрузки данных с помощью оператора копирования.

Я предполагаю, что другой способ выразить это - быстрее ли выполнять индексацию, когдаданные загружаются или сразу после того, как все это сделано.

Как только таблица загружена, она, как правило, никогда не будет изменена, пока не будет удалена.

1 Ответ

1 голос
/ 29 сентября 2019

В какой версии Postgres вы работаете?

Рассматривали ли вы разбиение?

И, да, должно быть быстрее создать индекс в конце, но это не учитываетмного нюансов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...