Chỉ mục là cấu trúc dữ liệu đặc biệt giúp cải thiện hiệu suất truy vấn. Các chỉ mục lưu trữ một phần dữ liệu của bộ sưu tập ở dạng dễ duyệt. Chỉ mục lưu trữ giá trị của một trường cụ thể hoặc tập hợp các trường, được sắp xếp theo giá trị của trường
Để cải thiện hiệu suất truy vấn, hãy xây dựng chỉ mục trên các trường thường xuất hiện trong truy vấn và cho tất cả các thao tác sắp xếp theo trường
Truy vấn trên một trường được lập chỉ mục có thể sử dụng chỉ mục để giới hạn số lượng tài liệu phải được quét để tìm tài liệu phù hợp
Thao tác sắp xếp trên trường được lập chỉ mục có thể trả về các tài liệu đã được chỉ mục sắp xếp trước
Để tìm hiểu thêm về các chỉ mục, hãy xem
chỉ mụcGhi chú
cân nhắc
Chỉ mục có một số tác động tiêu cực đến hoạt động ghi. Đối với các bộ sưu tập có tỷ lệ ghi để đọc cao, các chỉ mục rất tốn kém vì mỗi lần chèn cũng phải cập nhật bất kỳ chỉ mục nào. Để biết danh sách chi tiết về các cân nhắc đối với chỉ mục, hãy xem Cân nhắc hoạt động đối với chỉ mục.
Thẻ chỉ mục
Các
Chỉ mục liệt kê các chỉ mục hiện có cho bộ sưu tập.Để truy cập tab Chỉ mục cho bộ sưu tập, nhấp vào bộ sưu tập ở ngăn bên trái và chọn Indexes tab.
Đối với mỗi chỉ mục, La bàn hiển thị thông tin sau
Tên và Định nghĩa
Tên của chỉ mục và khóa
Loại
Chỉ mục thông thường, văn bản, không gian địa lý hoặc băm
Kích thước
Chỉ số lớn như thế nào
Cách sử dụng
Số lần chỉ mục đã được sử dụng kể từ khi chỉ mục được tạo hoặc lần khởi động lại máy chủ cuối cùng
Của cải
Bất kỳ thuộc tính đặc biệt nào [chẳng hạn như tính duy nhất, một phần] của chỉ mục
Tạo một chỉ mục
Để tạo chỉ mục trên bộ sưu tập qua La bàn, bộ sưu tập phải chứa tài liệu
1
Từ tab Chỉ mục, nhấp vào nút Tạo chỉ mục để hiển thị Tạo chỉ mụcTạo chỉ mục . Tạo chỉ mục . Tạo chỉ mục . Tạo chỉ mục . Tạo chỉ mục . Tạo chỉ mục . Tạo chỉ mục . Tạo chỉ mục . dialog.Nhấp vào nút Tạo chỉ mục .
2
Trong hộp thoại, nhập tên chỉ mục cần tạo hoặc để trống để MongoDB tạo tên mặc định cho chỉ mụcKhông bắt buộc. Nhập tên chỉ mục
3
Chỉ định một khóa chỉ mục Để chỉ định trường tài liệu hiện có làm khóa chỉ mục, hãy chọn trường từ danh sách thả xuống Để chỉ định một trường không tồn tại trong bất kỳ tài liệu nào làm khóa chỉ mục, hãy nhập tên trường vào hộp nhập liệu Để tạo chỉ mục tổng hợp , hãy nhấp vào Thêm trường khác. Sử dụng danh sách thả xuống ở bên phải của mỗi tên trường để chỉ định loại chỉ mục [Thêm trường vào chỉ mục
ascending
, descending
hoặc 2dsphere ]. Mẹo
Xem thêm
Để tìm hiểu cách chỉ định chỉ mục ký tự đại diện, hãy xem Chỉ mục ký tự đại diện.
4
La bàn hỗ trợ các tùy chọn chỉ mục sauKhông bắt buộc. Chỉ định các tùy chọn chỉ mục
Quyền mua
Sự miêu tả
Thêm thông tin
Xây dựng chỉ mục trong nền
Đảm bảo rằng việc triển khai MongoDB vẫn khả dụng trong quá trình xây dựng chỉ mục
Nền Xây Dựng
Tạo chỉ mục duy nhất
Đảm bảo rằng các trường được lập chỉ mục không lưu trữ các giá trị trùng lặp
Chỉ mục duy nhất
Tạo TTL chỉ mục
Tự động xóa tài liệu sau một số giây đã chỉ định kể từ khi giá trị trường được lập chỉ mục
Chỉ số TTL
Biểu thức bộ lọc một phần
Chỉ lập chỉ mục các tài liệu khớp với biểu thức bộ lọc đã chỉ địnhThí dụ
Biểu thức bộ lọc một phần sau đây chỉ lập chỉ mục các tài liệu có trường timezone
tồn tại
{ "timezone": { "$exists": true } }
Chỉ mục một phần
Sử dụng đối chiếu tùy chỉnh
Tạo đối chiếu tùy chỉnh cho chỉ mục bằng các tùy chọn được cung cấp trong La bàn
tài liệu đối chiếu
Phép chiếu ký tự đại diện [Mới trong MongoDB 4. 2]
Hỗ trợ các trường không xác định hoặc tùy ý khớp với phép chiếu đã chỉ định trong chỉ mục. Để sử dụng phép chiếu ký tự đại diện, hãy đặt tên trường chỉ mục của bạn thành $**
. Điều này hướng Compass sử dụng tất cả các trường trong tài liệu [không bao gồm _id
]Thí dụ
Xem xét tài liệu phép chiếu ký tự đại diện sau
{ "product_attributes.elements" : 1, "product_attributes.resistance" : 1}
Nếu tên trường chỉ mục của bạn là $**
, thì chỉ mục của bạn chỉ bao gồm các giá trị của các trường trong phép chiếu đó
Chỉ mục ký tự đại diện
5
Nhấp vào Tạo chỉ mục .
Chỉ mục ký tự đại diện
Mới trong phiên bản v4. 2
Bạn có thể tạo chỉ mục ký tự đại diện để hỗ trợ các truy vấn đối với các trường không xác định hoặc tùy ý. Để tạo chỉ mục ký tự đại diện trong La bàn, hãy nhập thủ công trường chỉ mục ký tự đại diện [
{ "product_attributes.elements" : 1, "product_attributes.resistance" : 1}
0] vào đầu vào Chọn tên trường . Thí dụ
Xem xét một bộ sưu tập trong đó các tài liệu chứa một đối tượng
{ "product_attributes.elements" : 1, "product_attributes.resistance" : 1}
0. Các trường trong đối tượng { "product_attributes.elements" : 1, "product_attributes.resistance" : 1}
0 có thể khác nhau giữa các tài liệu