В прошлой статье я мельком затронул такой вопрос как выбор оптимального алгоритма для поиска. Давай разберемся, как же база данных обрабатывает наш запрос.
Сначала база данных проводит лексический анализ, чтобы определить, не допустили ли мы ошибку в именовании полей или в синтаксисе языка SQL какой-нибудь ошибки. Помимо этого база “смотрит”, какие объекты были затронуты в запросе и рисует свое “внутреннее представление” о нем.
Далее - происходит оптимизация. Например, если в фильтре WHERE есть поле, по которому построен индекс, но оно идет не первым по порядку, то база его переставляет и будет фильтровать сначала по нему.
Следующим этапом идет построение вариантов “плана запроса”, то есть что и в каком порядке будет идти и выбор оптимального из них, путем теоретической оценки времени их выполнения
После этого - БД формирует выполняемое представление плана, то есть такое, которое будет выполнено компьютером, например, в машинных кодах или в исполняемый код системы управления базами данных (СУБД)
И на последнем этапе сформированный запрос скармливается интерпретатору и выполняется, возвращая результат.
Вот так происходит выполнение запроса. Если вдруг что-то не понятно: обязательно пиши: глупых вопросов в IT не бывает.
Подписывайся и зови друзей!