Вопросы к Поиску с Алисой
Адаптивная оптимизация запросов в PostgreSQL (AQO) работает следующим образом: habr.com
Принцип работы модуля AQO заключается в том, что для оценки стоимости планировщику нужна оценка кардинальности, а для неё, в свою очередь, нужна оценка селективности условий. habr.com Для простых условий (таких, как «атрибут = константа» или «атрибут > константа») у планировщика есть модель, по которой он оценивает селективность. habr.com Для этого он пользуется статистической информацией: количеством уникальных значений атрибута, гистограммами и т. п.. habr.com
Для условий, которые составлены из простых элементов с помощью логических связок, планировщик применяет легко вычисляемые формулы. habr.com AQO усложняет формулу: вводит для каждого простого условия свой собственный коэффициент. habr.com С помощью машинного обучения (используется регрессия методом ближайших соседей) AQO подбирает эти коэффициенты так, чтобы селективность, вычисленная по формуле, наилучшим образом соответствовала реальной селективности, которую AQO наблюдал ранее. habr.com
Таким образом AQO позволяет улучшить оценку селективности сложных условий и, как следствие, оценку стоимости, что может приводить к выбору более адекватного плана выполнения. habr.com