Từ wikipedia: B-Trees và chỉ mục bitmap . Các trường hợp sử dụng:
-
B-Trees là loại chỉ mục điển hình được sử dụng khi bạn thực hiện
CREATE INDEX ...
trong cơ sở dữ liệu:- Chúng rất nhanh khi bạn chỉ chọn một tập hợp con rất nhỏ của dữ liệu chỉ mục (thường là tối đa 5% -10%)
- Chúng hoạt động tốt hơn khi bạn có nhiều giá trị được lập chỉ mục riêng biệt.
- Việc kết hợp một số chỉ mục B-Tree có thể được thực hiện, nhưng các cách tiếp cận đơn giản hơn thường hiệu quả hơn.
- Chúng không hữu ích khi có ít giá trị riêng biệt cho dữ liệu được lập chỉ mục hoặc khi bạn muốn nhận một tập hợp con lớn (thông thường> 10%) của dữ liệu.
- Mỗi chỉ mục B-Tree áp dụng một hình phạt nhỏ khi chèn / cập nhật các giá trị trên bảng được lập chỉ mục. Đây có thể là vấn đề nếu bạn có nhiều chỉ mục trong một bảng quá bận rộn.
-
Chỉ mục bitmap là một biến thể chỉ mục chuyên biệt hơn:
- Chúng mã hóa các giá trị được lập chỉ mục dưới dạng bitmap và do đó, rất hiệu quả về dung lượng.
- Chúng có xu hướng hoạt động tốt hơn khi có ít giá trị được lập chỉ mục riêng biệt
- Trình tối ưu hóa DB có thể kết hợp một số bitmap được lập chỉ mục rất dễ dàng, điều này cho phép thực thi hiệu quả các bộ lọc phức tạp trong các truy vấn.
- Chúng rất kém hiệu quả khi chèn / cập nhật giá trị.
Các chỉ mục
Bitmap chủ yếu được sử dụng trong các ứng dụng kho dữ liệu, nơi cơ sở dữ liệu chỉ được đọc ngoại trừ các quy trình ETL và bạn thường cần thực hiện các truy vấn phức tạp đối với lược đồ sao , nơi các chỉ mục bitmap có thể tăng tốc độ lọc dựa trên các điều kiện trong bảng thứ nguyên của bạn, các bảng này thường không có quá nhiều giá trị riêng biệt.
Đặc điểm này làm cho chỉ mục B-Tree rất hữu ích để tăng tốc độ tìm kiếm trong các ứng dụng OLTP, khi bạn đang làm việc với các tập dữ liệu rất nhỏ tại một thời điểm, hầu hết các truy vấn đều lọc theo ID và bạn muốn có hiệu suất đồng thời tốt.
Như một bản tóm tắt rất ngắn:sử dụng chỉ mục B-Tree (chỉ mục "mặc định" trong hầu hết các cơ sở dữ liệu) trừ khi bạn là nhà phát triển kho dữ liệu và biết bạn sẽ có lợi cho chỉ mục bitmap.