Postgres reltuples, похоже, возвращает вдвое больше значений

Я использую этот запрос, чтобы получить приблизительное количество строк.

SELECT reltuples AS approximate_row_count FROM pg_class WHERE relname = 'table_name';

Эта статья была рекомендована для быстрого подсчета приблизительного числа строк: https://wiki.postgresql.org/wiki/Count_estimate

Но иногда кажется, что в два раза больше строк. Это происходит только после обновления до 9.6.8, Раньше все время работало правильно.

Проблема, кажется, исправляется, когда я бегу ANALYZE table_name, Через некоторое время проблема возвращается.

Я не совсем уверен, почему это происходит. Как я могу исправить эту проблему?

1 ответ

Сейчас я думаю, что это связано с ошибкой с функцией анализа вакуума в Postgres 9.8.6 после записи в список рассылки postgres. Ожидается, что это будет исправлено в следующем незначительном обновлении Postgres.

Источник: https://www.postgresql.org/message-id/CAFWmNu8SfSgBWcMCaWJfDLbcFUN3riC9jDuzOd08QsJgAqv%2B4A%40mail.gmail.com3.

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