От запроса до результата: как работает SQL-движок SQL-движок — это логический уровень между пользователем и данными в базе, который отвечает за обработку запроса и формирование результата. Но как он это делает? Один из авторов проекта Dolt (как его описывают сами разработчики — БД, которая работает, как репозиторий на GitHub) написал целую статью про опыт работы с их движком go-mysql-server. Хотя акцент именно на этот движок, он также рассказывает про разные подходы и принципы работы SQL-движков в целом. Если кратко: 🔵Выполнение запроса можно разделить на 7 шагов — парсинг, привязка к данным в БД, упрощение плана выполнения, оптимизация порядка выполнения джойнов, оценка эффективности плана, выполнение, вывод результатов. 🔵Сначала движок проверяет корректность запроса. Он формирует абстрактное синтаксическое дерево на этапе парсинга, а затем сопоставляет его с данными в базе. 🔵Если запрос был составлен правильно, то движок начинает формировать оптимальный план работы — наиболее быстрый и требующий минимально необходимое количество ресурсов, с учетом всех функций, джойнов и агрегаций. Для этого он старается как можно скорее «отбросить» все строки и колонки, которые не нужны в запросе, а также просчитывает разные варианты выполнения и выбирает самый быстрый. 🔵В конце концов, движок конвертирует выбранный план в исполняемый формат и выдает юзеру долгожданный результат. Автор каждый пункт разбирает подробно — как движок парсит запрос, с какими сущностями в БД сопоставляет на стадии привязки и как подбирает оптимальный способ выполнения запроса, еще и с картинками. В общем, почитать любопытно, даже если с Dolt работать не планируете.
От запроса до результата: как работает SQL-движок SQL-движок — это логический…
Из этого канала
- #1818DataLens открывает галерею дашбордов и не только Любите иногда ~~позалипать~~…
DataLens открывает галерею дашбордов и не только Любите иногда ~~позалипать~~ повдохновляться на Tableau Public? Да, мы тоже — а кто не любит? Теперь то же…
- #1819"""Нашу маму и там, и тут показывают"" — LEFT JOIN на Aha!25 Пусть в этом году…
"""Нашу маму и там, и тут показывают"" — LEFT JOIN на Aha!25 Пусть в этом году команда LEFT JOIN не смогла присоединиться к конференции физически, мы все равно…
- #1820Быстрее, выше, сильнее: что нового у dbt 28 мая dbt провела Launch Showcase,…
Быстрее, выше, сильнее: что нового у dbt 28 мая dbt провела Launch Showcase, где представила сразу несколько крупных изменений.
- #1816Что объединяет аналитиков, продактов, CPO, CDO и ML-разработчиков? Aha!25 —…
Что объединяет аналитиков, продактов, CPO, CDO и ML-разработчиков? Aha!25 — конференция про то, как решать продуктовые задачи с помощью ML, аналитики и…
- #1815«Аналитика для руководителей» уже в продаже! Купить книгу Николая Валиотти вы…
«Аналитика для руководителей» уже в продаже! Купить книгу Николая Валиотти вы можете на Литрес, Ozon, WIldeberries, Book24 и в Читай-городе.