SobesLab логотип SobesLab

Ответ

Оптимизатор анализирует SQL-запрос и на основе статистики о данных выбирает лучший план выполнения. Он рассматривает разные варианты: в каком порядке соединять таблицы, какие индексы использовать, где применить сортировку или хэширование и т.д. Каждому варианту приписывается оценка "стоимости" (число операций чтения/записи, предполагаемые затраты времени). Опираясь на эту оценку, оптимизатор выбирает самый дешевый план. Благодаря этому пользователи могут писать декларативный SQL, а СУБД сама решает, как лучше выполнить запрос (например, сделать ли индексный поиск или полное сканирование – решает оптимизатор).