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.