Skip to content

[64pt] Indexes: inconsistent and poor information about indexes #1691

@Onvember

Description

@Onvember

[From mopinion]

Информация по индексам сейчас разбита на несколько частей и её приходится искать по разным местам и это очень неудобно. Есть также 2 раздела (Модель данных->Индексы и CRUD operations -> Индекс), кажется что их можно было бы слить в один. На общей странице про индексы очень не хватает детальной информации:

  1. какие бывают типы индексов
  2. ограничения для каждого типа (какой движок поддерживает, какие допустимы типы данных, требуется ли уникальность, требуется ли нуллабельность)
  3. как работать с многокомпонентными индексами.
  4. чуть чуть тех деталей - какой индекс для каких сценариев лучше.

Источник: Монс

Обязательно надо добавить то что индекс 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

Metadata

Metadata

Assignees

Labels

add details[nature] More details needed, some info missing. Documentation is incomplete.user_guide[location] Tarantool manual, User's Guide part

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions