Ответ 1
Ну...
- Сначала у вас есть синтаксическая проверка, за которой следует генерация дерева выражений - на этом этапе вы также можете проверить, существуют ли элементы и "выстраиваются в линию" (т.е. поля существуют в таблице). Это первый шаг - любая ошибка здесь, если вы просто скажите подателю, чтобы он стал реальным.
- Тогда yo есть.... анализ. SQL-запрос отличается от программы тем, что он не говорит, КАК делать что-то, только КАКОЙ РЕЗУЛЬТАТ. Настроить логику. Таким образом, вы получаете анализатор запросов (в зависимости от продукта, плохого для хорошего - оракула долгое время, дерьмовые, самые чувствительные из них, даже измерения скорости диска), чтобы решить, как лучше всего подойти к этому результату. Это действительно сложный зверь - он может попробовать десятки или сотни подходов, чтобы найти тот, который, по его мнению, будет самым быстрым (основанный на затратах, в основном статистический).
- Затем выполняется.
Анализатор запросов, кстати, - это то место, где вы видите огромные различия. Не уверен в том, что MySQL - SQL Server (Microsoft) сияет тем, что у него нет лучшего (но одного из хороших), но у него действительно есть хорошие визуальные инструменты для ПОКАЗАНИЯ плана запроса, сравните оценки, которые анализатор реальные потребности (если они слишком сильно отличаются, статистика таблицы может быть отключена, поэтому анализатор ДУМАЕТ, что большая таблица невелика). Они представляют это красиво визуально.
В течение некоторого времени у DB2 был отличный оптимизатор, измеряющий - я уже сказал - скорость диска, чтобы оценить его. Oracle долгое время оставался "слева направо" (без реального анализа) и использовал пользовательские подсказки для запросов (дерьмовый подход). Я думаю, что MySQL был очень примитивным в начале - не уверен, где он сейчас.
Формат таблицы в базе данных и т.д. - это действительно то, что вам не нужно. Это документировано (очевидно, особенно для базы данных с открытым исходным кодом), но почему вы должны заботиться? Я занимаюсь SQL-работой почти 15 лет или около того и никогда не нуждался в этом. И это включает в себя выполнение довольно высокой работы в некоторых областях. Если вы не попытаетесь создать инструмент для восстановления файлов базы данных... не имеет смысла беспокоиться.