Разлика между B-Tree и Bitmap

B-дърво и растерно изображение

Имадва вида индекси, използвани в Oracle.Това са B-Tree и Bitmap. Тези индекси се използват за настройка на производителността, което всъщност прави търсенето на записи и извличането им доста бързо. Индексните функции създават запис за всички стойности, които се появяват в индексираните колони. Индексите на B-Tree са типът, който се използва от OLTP системите и който се прилага основно по подразбиране. Bitmap, от друга страна, се предлага като силно компресиран формат на индекса, който в повечето случаи се използва в складове за данни.

Растерното изображение може като цяло да бъде посочено като метод за индексиране, макар че могат да се търсят ползи за производителността и спестявания на съхранение. Използването му, както беше посочено по-рано, е основно в средата за съхранение на данни. Причината за това е, че актуализациите на данните не са толкова чести и ad hoc заявките са по-скоро в средата. При прилагането на Bitmap се предпочитат ниски кардинални данни. Растерното изображение е предпочитаният избор за елементи в колони, които имат ниски опции като пол, които ще имат само 2 стойности и са предпочитани. Статичните данни в склада също са добра характеристика на данните, които биха били отлично приложени с помощта на Bitmap. Друга характеристика на Bitmap е поток от битове, при което всеки бит е реализиран до стойност на колона в един ред на таблица.



Индексът на B-дърво, от друга страна, е индекс, който се създава върху колони, които съдържат много уникални стойности. Индексът B-Tree има подредени записи, където всеки запис има стойност на ключа за търсене и указател, който се отнася към даден ред и стойност. В случай, че сървърът намери съответстващо ограничение, което се отнася до въпросната стойност, указателят се разполагадонесиредът.

Една от разликите между двете е, че има слабо дублиране и висока сърдечност в B-Tree, докато обратното се случва в Bitmap. Bitmap има високи случаи на дублиране и ниска сърдечност. Счита се, че индексът на Bitmap е по-изгоден пред индекса B-Tree, тъй като има таблици с милиони редове, тъй като посочените колони имат ниска мощност. Следователно индексите в Bitmap предлагат по-добра производителност за разлика от индексите B-Tree.

B-Trees изглеждат изключително бързи, когато се събира малък набор от данни, в повечето случаи данните не трябва да надвишават 10% от размера на базата данни. Тези две работят заедно, когато има много различни стойности, които се индексират. Също така е уникално за B-Tree, че няколко индекса могат да бъдат обединени, за да се получи много ефективна програма. Растерното изображение, от друга страна, има тенденция да работи най-добре, когато има по-ниски индексирани стойности за максимална ефективност.

B-дърветата сабеденкогато става въпрос за търсене на по-големи подмножества от данни, които надвишават 10% от данните от подмножеството. Bitmap приема това предизвикателство, за да осигури висококачествени резултати, тъй като работи по-добре, когато има няколко различни стойности.

Ако има много индекси в заета таблица, използваща B-Tree, проблем може да възникне в резултат на малки санкции, наложени при вмъкване на индексирани данни или в случай, че трябва да вмъкнете и актуализирате индексирани данни. Това не е проблем с Bitmap, тъй като е много ефективно при вмъкване и актуализиране на стойности, независимо от размера, за който става въпрос.

Обобщение

B-Tree и Bitmap са два вида индекси, използвани в Oracle
Bitmap е метод за индексиране, предлагащ предимства за производителността и спестявания на съхранение
Индексът B-Tree е индекс, който се създава върху колони, които съдържат много уникални стойности
B-Tree работи най-добре с много различни индексирани стойности
Растерното изображение работи най-добре с много различни индексирани стойности