Cơ chế hoạt động của Single Field Index và Compound Index trong MongoDB khác nhau như thế nào, và quy tắc Left-prefix áp dụng ra sao?
1. Bản chất cơ chế
- Single Field Index: Chỉ mục trên một trường duy nhất của document, giúp tăng tốc độ tìm kiếm cho các truy vấn dựa trên trường đó.
- Compound Index (Chỉ mục kết hợp): Chỉ mục trên nhiều trường cùng lúc. MongoDB sắp xếp dữ liệu theo thứ tự các trường được định nghĩa trong index.
2. Quy tắc Left-prefix (Tiền tố bên trái)
- Khi bạn tạo một Compound Index gồm nhiều trường, ví dụ:
{ status: 1, createdAt: -1 }, MongoDB có thể sử dụng index này cho:- Truy vấn tìm kiếm theo
status. - Truy vấn tìm kiếm theo cả
statusVÀcreatedAt.
- Truy vấn tìm kiếm theo
- Tuy nhiên, nó KHÔNG tối ưu hoặc không sử dụng index nếu bạn chỉ truy vấn mỗi trường
createdAt.
3. Ví dụ minh họa
// Tạo Compound Index
db.orders.createIndex({ status: 1, totalAmount: -1 });
// Sử dụng hiệu quả Index
db.orders.find({ status: "pending", totalAmount: { $gt: 100 } });
// Vẫn sử dụng được Index vì trường 'status' nằm ở bên trái
db.orders.find({ status: "completed" });
// KHÔNG hiệu quả (phải quét toàn bộ collection - Collection Scan)
db.orders.find({ totalAmount: { $gt: 100 } });
4. Kinh nghiệm thực chiến
Luôn đặt các trường có tính lọc cao (độ phân giải dữ liệu lớn, ví dụ: userId, status) ở vị trí bên trái trong Compound Index để tối ưu hóa hiệu năng truy vấn cho ứng dụng.
Làm Chủ Phỏng Vấn & Nâng Cao Trình Độ Chuyên Nghiệp
Hệ thống khóa học thực chiến chuẩn Enterprise giúp bạn tự tin chinh phục mọi kỳ phỏng vấn kỹ thuật và thăng tiến thu nhập.
Tải Tuyển Tập 100+ Câu Hỏi Phỏng Vấn Chuyên Sâu (PDF)
Bộ tài liệu chuẩn Senior do Unicode Academy tuyển chọn & biên soạn, hỗ trợ tải về định dạng PDF chuẩn in ấn.
Cần Mentor Phỏng Vấn Thử 1-1 & Tối Ưu CV?
Mô phỏng phỏng vấn kỹ thuật thực tế 1-1 qua Google Meet, nhận xét chi tiết điểm mạnh/yếu và sửa CV trực tiếp cùng giảng viên Unicode.
Kiểm Tra CV Chuẩn ATS Miễn Phí
Tải CV của bạn lên để hệ thống AI rà soát từ khóa kỹ năng, định dạng và tính điểm chuẩn nhà tuyển dụng.
Câu hỏi mongodb liên quan cùng chủ đề
- Làm thế nào để tối ưu hóa hiệu năng và quản lý Document BSON structure trong dự án Mongodb? Entry
- Làm thế nào để tối ưu hóa hiệu năng và quản lý GridFS file storage trong dự án Mongodb? Entry
- Trong MongoDB, sự khác biệt giữa cơ chế Write Concern và Read Preference ảnh hưởng như thế nào đến tính nhất quán dữ liệu trong hệ thống phân tán? Junior
- Tại sao việc sử dụng toán tử $push kết hợp với $each trong MongoDB lại hiệu quả hơn việc cập nhật mảng thủ công trong ứng dụng? Junior
- Cơ chế TTL Index (Time-To-Live) trong MongoDB hoạt động như thế nào và những rào cản kỹ thuật nào cần lưu ý khi triển khai? Junior


