Влияет ли РАСШИРЕННАЯ СТАТИСТИКА на INSERT / UPDATE / DELETE в PostgreSQL? - PullRequest
1 голос
/ 29 апреля 2020

Очевидно, что правильно созданная расширенная статистика может иметь некоторое влияние на то, насколько эффективно планировщик запросов оценивает запросы SELECT, когда выбираются некоторые взаимозависимые данные, но имеют ли они какое-либо влияние на операции, такие как INSERT, UPDATE и DELETE, для таблиц, которые имеют какие-либо РАСШИРЕННАЯ СТАТИСТИКА, определенная в любом из ее столбцов?

1 Ответ

4 голосов
/ 29 апреля 2020

UPDATE и DELETE затронуты, потому что, подобно SELECT, вы указываете условия для строк, которые должны быть обновлены / удалены. Затем планировщик создаст план запроса для поиска этих строк, аналогично SELECT, основываясь на той же статистической информации.

Поведение INSERT и часть UPDATE для записи новых строк не являются зависит от статистики. Они оба ведут себя одинаково, детерминистически c: они вставляют свою версию строки в первую доступную страницу данных, на которой имеется достаточно свободного места для хранения строки, которая находится с помощью карты свободного пространства.

См. https://github.com/postgres/postgres/blob/master/src/backend/storage/freespace/README для получения дополнительной информации о том, как карта свободного пространства и как PG определяет, куда записать новую версию строки.

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