Різниця між B-Tree та Bitmap

B-дерево і растрова карта

У Oracle існує два типи індексів. Це B-Tree і Bitmap. Ці індекси використовуються для настройки продуктивності, що фактично робить пошук записів та їх отримання досить швидким. Функції індексу створюють запис для всіх значень, які відображаються в індексованих стовпцях. Індекси B-Tree - це тип, який використовується OLTP-системами і в основному реалізований за замовчуванням. З іншого боку, Bitmap - це дуже стислий формат індексу, який, в більшості випадків, використовується в сховищах даних.

Растрові зображення в цілому можна назвати методом індексації, хоча вигідні ефективність роботи та економія пам’яті. Її використання, як було зазначено раніше, відбувається переважно в середовищі зберігання даних. Причиною цього є те, що оновлення даних не настільки часті, а спеціальних запитів більше в оточенні. У реалізації Bitmap переважні низькі дані кардинальних даних. Растрові зображення є кращим вибором для елементів стовпців, які мають низькі параметри, такі як стать, які матимуть лише 2 значення та є кращими. Статичні дані на складі також є хорошою характеристикою даних, які були б чудово реалізовані за допомогою Bitmap. Ще одна характеристика Bitmap - потік бітів, за допомогою якого кожен біт реалізується до значення стовпця в одному рядку таблиці.

Індекс B-дерева, з іншого боку, - це індекс, який створюється на стовпцях, що містять дуже унікальні значення. Індекс B-Tree має впорядковані записи, коли кожен запис має значення ключа пошуку та вказівник, який посилається на заданий рядок та значення. У випадку, якщо сервер знайде відповідне обмеження, яке стосується відповідного значення, покажчик розгортається для отримання рядка.

Однією з відмінностей між ними є те, що у B-Tree є низьке дублювання та висока ко-сердечність, тоді як у Bitmap відбувається навпаки. Растрова карта має високі копії копій і низьку сердечність. Вважається, що індекс Bitmap є вигідним порівняно з індексом B-Tree, оскільки в ньому є таблиці з мільйонами рядків, оскільки вказані стовпці мають низьку кардинальність. Отже, індекси в Bitmap пропонують кращу ефективність на відміну від індексів B-Tree.

B-Дерева здаються надзвичайно швидкими, коли збирається невеликий набір даних, у більшості випадків дані не повинні перевищувати 10% від розміру бази даних. Ці два працюють разом, коли існує велика кількість чітких значень, які індексуються. B-Tree також унікальний тим, що декілька індексів можуть бути об'єднані для створення дуже ефективної програми. З іншого боку, растрові зображення, як правило, працюють найкраще, коли є нижчі індексовані значення для максимальної ефективності.

B-дерева бідні, коли йдеться про пошук великих наборів даних, які перевищують 10% даних про підмножину. Bitmap бере на себе цей виклик, щоб забезпечити якісні результати, оскільки він працює краще, коли є кілька чітких значень.

Якщо в B-Tree є багато індексів, що використовують B-Tree, проблема може виникнути внаслідок невеликих штрафних санкцій, що застосовуються під час вставки індексованих даних або у випадку, якщо вам потрібно буде вставляти та оновлювати індексовані дані. Це не проблема з Bitmap, оскільки вона дуже ефективна для вставки та оновлення значень, незалежно від розміру, про який йдеться..

Підсумок

B-Tree і Bitmap - це два типи індексів, що використовуються в Oracle
Растрова карта - це метод індексації, що пропонує переваги продуктивності та економію пам’яті
B-Tree index - індекс, який створюється на стовпцях, що містять дуже унікальні значення
B-Tree найкраще працює з багатьма різними індексованими значеннями
Растрові зображення найкраще працюють з багатьма різними індексованими значеннями