Какова структура данных, используемая в СУБД, например Oracle, MySQL & Sqlite для хранения и извлечения записей.Datastructures, используемые в СУБД
ответ
У MySQL есть подключаемые системы хранения. Это означает, что двигатель может использовать разные хранилища. В настоящее время у вас есть 5-6 из них, которые вы можете использовать. И поскольку это открытый исходный код, вы можете видеть, как это делается.
SQLite использует собственную реализацию B-Tree с ведением журнала. Открытый исходный код - вы можете посмотреть на него.
Firebird и Interbase используют B-дерева с несколькими системами контроля версий записей для хранения. Firebird - с открытым исходным кодом. Стоит посмотреть.
Не могу сказать, для Oracle, MS SQL Server или других проприетарных систем баз данных, так как они сохраняют информацию о хранении в тайне.
Обычно умный реализация B-Trees
Из приведенной выше связанной Статьи Википедии:
В-дерево порядка т (максимального число детей, для каждого узла) представляет собой дерево, которое удовлетворяет следующие свойства:
- В каждом узле не более детей.
- Каждый узел (кроме корня и листьев) имеет как минимум m/2 детей.
- Корень имеет не менее двух детей, если он не является листовым узлом.
- Все листья отображаются на одном уровне и несут информацию.
- Узел не-лист с K детей содержит K-1 ключи
преимущества, которые, что данные могут быть доступны в логарифмическом времени, как и в большинстве деревьев поиска (например, стандартных бинарных деревьев) , но временные свойства лучше в среднем случае.
спасибо, его информативный – Prabu
Спасибо за ответ! – Prabu
Oracle, MS и Sybase являются собственностью, но внутренняя структура doco не является секретом вообще. Свободно доступно для покупателей. Может быть немного сложнее найти его в Интернете. Во всяком случае, B-Trees - это всего лишь одна структура хранилища, а что другие? – PerformanceDBA