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

Cách chính xác để lập chỉ mục trong MongoDB là gì khi tồn tại sự kết hợp lớn của các trường

Nói chung, các chỉ mục chỉ hữu ích nếu chúng vượt quá một chọn lọc đồng ruộng. Điều này có nghĩa là số lượng tài liệu có giá trị cụ thể là nhỏ so với tổng số tài liệu.

Ý nghĩa "nhỏ" thay đổi tùy theo tập dữ liệu và truy vấn. Độ chọn lọc 1% là khá an toàn khi quyết định xem một chỉ số có hợp lý hay không. Nếu một giá trị cụ thể tồn tại trong 10% tài liệu, thì việc thực hiện quét bảng có thể hiệu quả hơn so với việc sử dụng một chỉ mục trên trường tương ứng.

Với ý nghĩ đó, một số lĩnh vực của bạn sẽ được chọn lọc và một số sẽ không. Ví dụ:tôi nghi ngờ việc lọc theo "OK" sẽ không được chọn lọc lắm. Bạn có thể loại bỏ các trường không chọn lọc khỏi việc cân nhắc lập chỉ mục - nếu ai đó muốn tất cả các đơn hàng "OK" mà không có điều kiện nào khác, họ sẽ thực hiện quét bảng. Nếu ai đó muốn các đơn đặt hàng "OK" và có các điều kiện khác, bất kỳ chỉ mục nào có thể áp dụng cho các điều kiện khác sẽ được sử dụng.

Bây giờ bạn còn lại với các trường có chọn lọc (hoặc ít nhất là có phần chọn lọc), hãy xem xét những truy vấn nào vừa phổ biến vừa có chọn lọc. Ví dụ, có lẽ thương hiệu + loại sẽ là một sự kết hợp như vậy. Bạn có thể thêm các chỉ mục kết hợp phù hợp với các truy vấn phổ biến mà bạn muốn chọn lọc.

Bây giờ, điều gì sẽ xảy ra nếu ai đó chỉ lọc theo thương hiệu? Điều này có thể được chọn lọc hoặc không tùy thuộc vào dữ liệu. Nếu bạn đã có chỉ mục tổng hợp về thương hiệu + loại, bạn sẽ đưa nó vào cơ sở dữ liệu để xác định xem truy vấn chỉ thương hiệu có hiệu quả hơn để thực hiện thông qua chỉ mục thương hiệu + loại hoặc qua quét bộ sưu tập hay không.

Tiếp tục theo cách này với các trường và truy vấn phổ biến khác.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tạo chỉ mục văn bản ký tự đại diện trong MongoDB

  2. Thứ tự của các chỉ mục kết hợp quan trọng như thế nào trong hiệu suất MongoDB?

  3. Native MongoDB Masking (Phương pháp thứ 3)

  4. MongoDB:Làm thế nào để tìm 10 tài liệu ngẫu nhiên trong bộ sưu tập 100?

  5. Các cụm MongoDB hiệu suất cao trên Amazon EC2