@StrVL

Компиляция СУБД по описанию структуры базы (по аналогии с bison) – такое существует?

Вопрос на правах любопытства. Стало интересно, существует ли в природе некая «предкомпилируемая» реляционная СУБД? Правильнее будет сказать не СУБД, а «конструктор СУБД», «генератор СУБД» или «компилятор СУБД», который по заранее заданному описанию базы (структуры таблиц, всех возможных запросов к ним, хранимых процедур, триггеров, каких-либо настроек вроде формата контейнеров и размера буферов и т.д.) будет генерировать исполняемые файлы самой СУБД, «заточенной» под конкретную БД (и соответственно, работающую только с ней). Речь идёт о том, чтобы скомпилировать все SQL-запросы в нативный код, и, к примеру, каждый запрос оформить в виде отдельной экспортируемой из СУБД функции с соответствующими запросу параметрами. В общем, пожалуй, некоторая аналогия того, о чём я говорю, из области создания компиляторов – bison.
Такой подход по идее снизит накладные расходы по сравнению с традиционными СУБД (на тот же парсинг SQL-запроса, на двойное копирование данных в сокет/общую память при передаче их между приложением и СУБД, на множество «лишних» проверок, неизбежных из-за универсальности традиционных СУБД). Плюс к этому логично предположить, что существенно ускорит производительность выпиливание всей незадействованной функциональности СУБД. И к тому же ещё и сократит размер исполняемого файла, да и вообще позволит получить оттюнингованную на свой вкус и оптимизированную под свои требования СУБД, как это делают с ядром линукса.
В общем, наверняка ведь подобная идея уже реализована, вопрос – где?
  • Вопрос задан
  • 304 просмотра
Пригласить эксперта
Ответы на вопрос 2
AxianLTD
@AxianLTD
MySQL Workbench - визуально проектируем, затем получаем БД, ну и/или наоборот и обновляем если нужно. Мы об одном и том же говорим?
Ответ написан
@d-stream
Готовые решения - не подаю, но...
Резонный вопрос: а нафига? Это же сродни "ща запилю свою ос со своим ассемблером sql и компилятором" -)

Более-менее большие SQL-системы зачастую славятся именно тем, что в каждый конкретный момент времени (запрос) могут в том числе на основании статистики, памяти, загрузки построить разный план выполнения одного и того же запроса. Именно с целью его оптимизации.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы