MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Trong MongoDB, nếu một chỉ mục nằm trên 3 trường, chúng ta có thể sử dụng chỉ mục đó khi truy vấn trên 2 trường không? (ký tự đại diện trên trường thứ 3)

Đó là các chỉ mục B-tree, vì vậy chúng có thể được sử dụng cho một tập hợp con tiền tố của các cột liên quan. Nếu bạn không có các cột hàng đầu, việc quét phạm vi chỉ mục (hoạt động mà chỉ mục B-tree chủ yếu được sử dụng) sẽ không thể thực hiện được nữa. Có thể có những cách khác để vẫn sử dụng chỉ mục (ví dụ như Oracle có các chế độ quét toàn bộ nhanh và bỏ qua các lần quét), nhưng thông thường, chỉ mục sẽ không được sử dụng.

Lý luận này áp dụng cho mọi thứ sử dụng chỉ mục B-tree, DB quan hệ hoặc không.

Một lần nữa, điều này không phụ thuộc vào loại cột mà phụ thuộc vào thứ tự của các cột trong chỉ mục. Bạn cần có các cột đứng đầu (trong trường hợp của bạn, bạn cần page_type). Nếu bạn có nhiều truy vấn mà không có page_type, hãy xem xét tạo lại chỉ mục với page_type làm cột cuối cùng (tất nhiên điều này cũng có thể có tác động tiêu cực đến các truy vấn khác). Nói chung, bạn cần biết loại truy vấn bạn sẽ chạy trước khi có thể thiết kế các chỉ mục.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cập nhật trường con trong tài liệu mongoDB bằng findOne và lưu

  2. Làm cách nào bạn có thể gỡ lỗi các hàm javascript được lưu trữ trong MongoDB?

  3. Làm cách nào để chạy MongoDB và Mongo-express với docker-soạn?

  4. Xung đột ReplicaSetId khi thêm nút MongoDB

  5. MongoDB $ indexOfArray