Почему использование Analyze совместно с Explain не показывает точное количество строк в таблице (Postgresql)
База данных развернута в docker. Версия Postgresql -
PostgreSQL 13.3 (Debian 13.3-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit.
CREATE TABLE test_table
(
id integer,
name text
);
INSERT INTO test_table
SELECT i, md5(random()::text)
FROM generate_series(1, 10000000) AS i;
SELECT count(id) FROM test_table;
Я запускаю команды
ANALYZE test_table;
EXPLAIN SELECT * FROM test_table;
Я нашел информацию, что после выполнения ANALYZE и когда выполняем команду EXPLAIN, то статистика в планировщике должна быть обновлена. Количество строк rows должно быть точным, сумма средних длин записей столбцов выборки - width, становится немного большим. Страничная стоимость (cost) будет несколько ниже (cost зависит от количества rows, но не зависит от среднего значения суммы width, каждого row ).
Количество строк rows должно быть точным, однако это не так. Якобы стоимость страничная будет ниже, но у меня показывает такую же, как и была до обновления статистики по таблице.
Но получаю неверный подсчет количества строк
Почему так происходит ?