Внутреннее устройство планировщика запросов PostgreSQL
Как понять, почему запрос медленно выполняется? Является ли это результатом выбора неоптимального плана запроса? Чтение вывода команды explain. Способы извлечения и соединения данных. Все, что может повлиять на план запроса. Примеры ошибочных планов. Способы переписывания запросов.
Один и тот же запрос в большинстве случаев может быть выполнен множеством различных способов, причем время их выполнения порой отличается на порядки. Задачей планировщика/оптимизатора запросов является выбор некоторого оптимального варианта за разумное время, при котором ожидаемое время выполнения будет минимальным. Чаще всего он справляется с этой задачей, но иногда возникают проблемы и, чтобы их решить, очень полезно понимать как он работает.
В докладе будет рассказано о внутреннем устройстве планировщика/оптимизатора запросов, показаны различные способы влияния на план запроса, известные проблемы и способы их решения.