как индексация B-дерева работает в mysql

вы можете прочитать файл и сделать матрицу из 2xno_cities, а когда пользователь вводит число, вы просто делаете

array[input-given-by-user][1]

, так как первый [] будет для строки, а второй для столбца, где вы сохраняете города,

12
задан marcgg 9 August 2013 в 08:49
поделиться

2 ответа

База данных хранит индексированное значение как ключ B-Tree, а указатель записи как значение B-Tree.

Всякий раз, когда вы ищете запись, содержащую определенное значение индексированного столбца, механизм находит ключ, содержащий это значение в B-дереве, извлекает указатель на запись и извлекает запись.

Что именно является "указателем на запись", зависит от механизма хранения.

  • В MyISAM указатель записи - это смещение к записи в файле MYI.

  • В InnoDB указатель записи - это значение PRIMARY KEY.

В InnoDB сама таблица представляет собой B-дерево с PRIMARY KEY в качестве B-дерева ключа. Это так называемый "кластеризованный индекс" или "таблица, организованная по индексу". В этом случае все остальные поля хранятся как значения B-Tree.

В MyISAM записи хранятся без какого-либо специального порядка. Это называется "хранение в куче".

21
ответ дан 2 December 2019 в 07:21
поделиться

MySQL InnoDB на самом деле использует B+Tree, которые добавляют больше опций, чем B-дерево.

, такие как:

Только листовой узел имеет значения, чтобы позволить большему количеству ключей в том же узле страницы уменьшать дерево высоко, которое уменьшит количество ввода-вывода.

Добавляют двунаправленный указатель в каждой вершине, чтобы заставить диапазон искать быстрее

B-дерево

B-Tree

B+Tree

B+Tree

0
ответ дан 2 December 2019 в 07:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: