Extra Overhead:
Mỗi chỉ mục không chỉ chiếm dụng một phần không gian bộ nhớ mà còn gây ra một overhead trên mỗi hoạt động insert, update, và delete. Vì thế, nếu bạn hiếm khi sử dụng Collection của mình cho các hoạt động read, thì bạn không nên sử dụng chỉ mục cho nó.
RAM Usage:
Khi chỉ mục được lưu giữ trong RAM, bạn nên đảm bảo rằng tổng dung lượng của chỉ mục không vượt quá giới hạn của RAM. Nếu tổng dung lượng tăng hơn kích cỡ của RAM, nó sẽ bắt đầu xóa một số chỉ mục và việc này gây ra sự thất thoát hiệu suất.
Hạn chế của chỉ mục khi sử dụng trong các truy vấn
Chỉ mục không thể được sử dụng trong các truy vấn mà sử dụng:
- Regular Expression hoặc các toán tử phủ định như $nin, $not, …
- Các toán tử số học như $mod, …
- Mệnh đề $where.
Vì thế, lời khuyên tốt cho bạn là nên kiểm tra lại sự sử dụng chỉ mục trong các truy vấn của mình.
Index Key Limits:
Bắt đầu từ phiên bản 2.6, MongoDB sẽ không tạo một chỉ mục nếu giá trị của trường index đang tồn tại là vượt quá Index Key Limit.
Chèn Document vượt quá Index Key Limit
MongoDB sẽ không chèn bất cứ một Document nào vào trong một Collection đã lập chỉ mục nếu giá trị của trường được lập chỉ mục đó của Document này là vượt quá Index Key Limit. Điều tương tự xảy ra với các tiện ích Mongorestore và Mongoimport.
Giới hạn tối đa
- Một Collection không thể có nhiều hơn 64 chỉ mục.
- Độ dài của tên chỉ mục không thể dài hơn 125 ký tự.
- Một chỉ mục phức hợp có thể có tối đa là 31 trường được lập chỉ mục.