Mặc dù hầu hết các chỉ mục đều sử dụng kiến trúc dạng B-TREE, song thuật ngữ B- TREE thường sử dụng kết hợp với một chỉ mục có lưu trữ danh sách ROWID là số hiệu duy nhất của mỗi dòng của bảng tại mỗi khoá của chỉ mục đó.
Cấu trúc của B_TREE
Đỉnh của chỉ mục hay còn gọi là gốc (root). Gốc chứa các điểm vào (entry) trỏ đến mức tiếp theo của chỉ mục. Ở mức tiếp theo là các nhánh (branch). Nhánh này lại trỏ đến các nhánh tiếp theo của chỉ mục. Ở mức thấp nhất là lá (leaf). Lá sẽ chứa thông tin điểm vào trỏ đến các dòng trong bảng.
Hình 32: Cấu trúc của chỉ mục B-Tree
Các khối lá là kết nối kép thuận tiện cho việc truy xuất chỉ mục trong trật tự giảm hay tăng của giá trị khoá.
Định dạng của lá chỉ mục
Một điểm vào của chỉ mục sẽ được tạo thành bởi các thành phần sau đây:
Trường tiêu đề: thông tin lưu trữ số column và thông tin khoá của các hàng trong bảng.
Chiều dài khoá: chứa thông tin về kích thước column tham gia vào khoá và tiếp theo là kích thước của đó.
ROWID: là giá trị của ROWID chứa giá trị khoá của chỉ mục.
Đặc tính của chỉ mục leaf entry
Một B-TREE chỉ mục trong một bảng không phân vùng (non-partitioned table):
Giá trị khoá bị lặp lại nếu như có nhiều hàng có cùng giá trị khoá.
Không có lá chỉ mục tương ứng với các dòng mà giá trị của tất cả các cột khoá đều bằng NULL.
ROWID được giới hạn sử dụng để trỏ đến các dòng của bảng, bởi vì tất cả các dòng đều thuộc về cùng một phân đoạn (segment).