В настоящее время я читаю об основах B+ Tree
и запутался в распределении пространства для кластерного и некластеризованного индекса.В случае сохранения кластерного и некластеризованного индекса дерева B +?
Когда мы создаем кластерный индекс на B+ tree
, индекс будет храниться в основной памяти, а листья содержат указатели данных на фактические блоки. Блоки хранятся на дисках, а блоки содержат запись.
- Обычно кластерный индекс создан первичный ключ
- Там может быть только один кластерный индекс
Теперь предположим, что у нас есть таблица (идентификатор, имя, класс), и я создал два некластеризованные индексы на name
и class
. Мое сомнение в том, где будет храниться некластеризованный индекс? и как поиск будет выполняться для query
как
select id, name, class from table where id = 3, name='Leo' and class='10'
Мое предположение:
- Поскольку идентификатор поле является первичным ключом, так первым использованием кластерного индекса будет ID = 3
- Теперь, используя некластеризованный индекс на
name
иclass
, мы найдем остальные поля
Как вы думаете, мое предположение верно? Не могли бы вы подробнее рассказать о хранении кластерного индекса? Имеет ли индекс (кластеризованный и не кластерный) n-арное дерево?). Я не могу одновременно визуализировать как кластерный, так и некластеризованный индекс.
Самое лучшее, что я читал до сих пор :) Я искал что-то подобное. Он сильно разъясняет мое сомнение – python
Спасибо за комплимент. Что вы подразумеваете под «разъяснением моих сомнений»? –
Комментарий очень полезный. – python