Типы индексов хранилища
Это относится к определению типа индекса index_type при создании индекса, т.е. BTREE, HASH или RTREE.
Для получения дополнительной информации о общих типах индексов, таких как первичные ключи, уникальные индексы и т.д., перейдите на страницу Начало работы с индексами.
| Двигатель хранилища | Разрешённые индексы |
|---|---|
| Aria | BTREE, RTREE |
| MyISAM | BTREE, RTREE |
| InnoDB | BTREE |
| MEMORY/HEAP | HASH, BTREE |
BTREE обычно является типом индекса по умолчанию. Для таблиц MEMORY по умолчанию используется HASH. TokuDB использует особую структуру данных, называемую фрагментными деревьями, которая оптимизирована для данных, которые полностью не помещаются в память.
Понимание структур данных B-дерева и хеш-таблиц может помочь предсказать, как различные запросы будут выполняться на различных движках хранилища, которые используют эти структуры данных в своих индексах, особенно для движка хранилища MEMORY, который позволяет вам выбирать индексы B-дерева или хеш-таблиц. Характеристики индекса B-дерева
Индексы B-дерева
Индексы B-дерева используются для сравнений столбцов с помощью операторов >, >=, =, >=, < или BETWEEN, а также для сравнений LIKE, которые начинаются с константы.
Например, запрос SELECT * FROM Employees WHERE First_Name LIKE 'Maria%'; может использовать индекс B-дерева, а SELECT * FROM Employees WHERE First_Name LIKE '%aria'; — нет.
Индексы B-дерева также допускают левостороннюю префиксацию для поиска строк.
Если количество строк не меняется, индексы хеш-таблиц занимают фиксированный объем памяти, который меньше, чем объем памяти, занимаемый индексами BTREE.
Индексы хеш-таблиц
В отличие от этого, индексы хеш-таблиц могут использоваться только для сравнений на равенство, поэтому те, которые используют операторы = или <=>. Они не могут использоваться для упорядочивания и не предоставляют оптимизатору информацию о том, сколько строк существует между двумя значениями.
Индексы хеш-таблиц не допускают левосторонней префиксации — может использоваться только весь индекс.
Индексы R-дерева
См. ПРОСТРАНСТВЕННЫЕ для получения дополнительной информации.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/storage-engine-index-types/