-
Notifications
You must be signed in to change notification settings - Fork 43
Description
[From mopinion]
Информация по индексам сейчас разбита на несколько частей и её приходится искать по разным местам и это очень неудобно. Есть также 2 раздела (Модель данных->Индексы и CRUD operations -> Индекс), кажется что их можно было бы слить в один. На общей странице про индексы очень не хватает детальной информации:
- какие бывают типы индексов
- ограничения для каждого типа (какой движок поддерживает, какие допустимы типы данных, требуется ли уникальность, требуется ли нуллабельность)
- как работать с многокомпонентными индексами.
- чуть чуть тех деталей - какой индекс для каких сценариев лучше.
Источник: Монс
Обязательно надо добавить то что индекс HASH требует уникальность полей и в современных приложениях его лучше не использовать, т.к. он почти по всем параметрам проигрывает TREE. HASH присутствует сейчас в тарантуле в основном из-за backward compatibility.
Не используйте индекс HASH:
- просто так
- "потому что hash быстрее" (без перф-замера)
- для первичного ключа
- в качестве единственного индекса
- если хотите итерироваться по данным
Используйте HASH:
- Если это вторичный ключ
- Вам 100% не потребуется снять с него уникальность
- Вам ОЧЕНЬ нужны эти 2-5% перфа
- Вы провели замеры на ваших данных и вы видите этот прирост перфа
- Вы экономите каждый байт на тапле (хэши чуть-чуть компактнее)
https://www.tarantool.io/en/doc/1.10/book/box/indexes/
https://www.tarantool.io/en/doc/1.10/book/box/data_model/#indexes