От wikipedia:B-Trees и индекси на растерни изображения . Случаите на употреба:
-
B-дърветата са типичният тип индекс, използван, когато правите
CREATE INDEX ...
в база данни:- Те са много бързи, когато избирате само малка подгрупа от индексните данни (максимум 5%-10% обикновено)
- Те работят по-добре, когато имате много различни индексирани стойности.
- Може да се направи комбиниране на няколко B-Tree индекса, но по-простите подходи често са по-ефективни.
- Те не са полезни, когато има малко отделни стойности за индексираните данни или когато искате да получите голямо (>10% обикновено) подмножество от данните.
- Всеки индекс на B-Tree налага малко наказание при вмъкване/актуализиране на стойности в индексираната таблица. Това може да е проблем, ако имате много индекси в много натоварена таблица.
-
Растерните индекси са по-специализиран вариант на индекс:
- Те кодират индексирани стойности като растерни изображения и затова са много ефективни в пространството.
- Склонни са да работят по-добре, когато има малко отделни индексирани стойности
- Оптимизаторите на DB могат да комбинират няколко растерни изображения, индексирани много лесно, което позволява ефективно изпълнение на сложни филтри в заявките.
- Те са много неефективни при вмъкване/актуализиране на стойности.
Растеровите индекси се използват най-вече в приложения за съхранение на данни, където базата данни е само за четене, с изключение на ETL процесите, и обикновено трябва да изпълнявате сложни заявки срещу звездна схема , където растерните индекси могат да ускорят филтрирането въз основа на условията във вашите таблици с размери, които обикновено нямат твърде много различни стойности.
Тези характеристики правят индексите на B-Tree много полезни за ускоряване на търсенията в OLTP приложения, когато работите с много малки набори от данни наведнъж, повечето заявки филтрират по ID и искате добра едновременна производителност.
Като много кратко резюме:използвайте B-Tree индекси (индексът "по подразбиране" в повечето бази данни), освен ако не сте разработчик на хранилище за данни и знаете ще се възползвате от растерен индекс.