Индекс Postgres

Я новичок в Postgres.

Мы внедрили SCD типа 2 в нашем проекте, используя Postgres. Входной файл представляет собой файл полного обновления с примерно 30 миллионами записей в день.

Номер счета является ключевым столбцом.

Приблизительное количество новых записей будет 20К / день. Если запись отсутствует в источнике, эта запись закрывается с конечной датой в целевом объекте. Примерное количество закрываемых записей - 10к / день

Время выполнения запроса постоянно увеличивается. Поможет ли индексация ускорить процесс?

Любое предложение по индексу, который будет использоваться?

2 ответа

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

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

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

Эти 30 миллионов записей хранятся как каждая строка в базе данных? Хорошо, если это так, то индексирование (создание и ведение) многих записей также будет в некоторой степени обременительным для базы данных. Однако есть новый индекс, который представил PostgreSQL, который называется BRIN Index что может помочь вам немного Я написал блог об этом несколько месяцев назад. Вы можете взглянуть на это и, очевидно, исследовать это больше.

http://blog.bajratechnologies.com/2016/09/16/Postgres-BRIN-Index/

Другие вопросы по тегам