Индекс производительности Postgres GIN - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть индекс Postgres GIN для таблицы, t1, для столбца JSONB a_col.

CREATE INDEX i_1 ON t1 USING gin (t1.a_col)

Для этого требуется время выполнения запроса:~ 2 с до ~ 50 мс.

Эта таблица несколько активна, ежедневно принимает ~ 1 000 новых строк данных без обновлений / удалений.

Проблема, с которой я сталкиваюсь, заключается в производительности этого индексарезко падает после нескольких сотен операций записи - производительность запросов падает до ~ 2 с.

Эта проблема устранена после выполнения операции reindex.

REINDEX INDEX i_1

Но это оставляет вопрос, что заставляет индекс работать так плохо?

1 Ответ

0 голосов
/ 25 февраля 2019

Во время работы

select * from pg_stat_all_tables where relname = 't1'

я видел, что n_mod_since_analyze имеет> 2 тыс. Строк, а last_autoanalyze было несколько дней.

Путем сброса значенияautovacuum_analyze_scale_factor с 0.05 до 0.002, autoanalyze начал часто перемещаться и начал видеть более стабильную производительность.

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