Чим відрізняється btree від rtree індексації?


36

Я помітив на MySQLWorkbench, що ви можете вибрати, як зберігати свої індекси, перш ніж передати інженерний дизайн. Типи сховища:

  1. BTREE
  2. RTREE
  3. ХАШ

Досліджуючи це, я виявив деяку інформацію, яка в значній мірі переважала мені в голові, тому я шукаю практичну інформацію про те, у чому різниця між цими та / або чому слід вибирати одну над іншою.

Також я ніколи раніше не вибирав тип пам’яті, тому припускаю, що MySQL вибирає тип зберігання за замовчуванням (BTREE?)

Відповіді:


51

BTree

BTree (насправді B * Tree) - це ефективна впорядкована карта ключових значень. Значення:

  • надавши ключ, індекс BTree може швидко знайти запис,
  • a BTree можна сканувати в порядку.
  • також легко отримати всі клавіші (та записи) в межах діапазону.

наприклад, "усі події між 9:00 та 17:00", "прізвища, що починаються з" R "

RTRE

RTree - це spatial indexозначає, що він може швидко визначити closeзначення в 2 або більше вимірах. Він використовується в географічних базах даних для запитів, таких як:

всі точки в межах X метрів від (x, y)

Хеш

Хеш - це не упорядкована карта ключових значень. Це навіть ефективніше, ніж BTree: O(1)замість O(log n).

Але він не має поняття порядку, тому його не можна використовувати для операцій сортування або для отримання діапазонів.

Як бічна примітка, спочатку MySQL дозволяв індекси Hash лише на MEMORYтаблицях; але я не впевнений, чи змінилося це протягом багатьох років.


Чи підтримує MySQL Rtrees?
Pacerier

2

Класно, спасибі =) Чи є інші структури, крім цих 3, чи заплановані структури найближчим часом?
Печер'є

Таблиці пам'яті також підтримують індекси
btree

@Amareswar, правильно. Можливо, мою відповідь можна прочитати обома способами, але те, що я мав на увазі, це те, що індекси HASH дозволені лише на таблицях ПАМ’ЯТЬ, а не на «звичайних» таблицях.
Хав'єр
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.