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

Nguy cơ của việc xây dựng chỉ mục trên MongoDB

Chỉ mục là một phần quan trọng của bất kỳ hoạt động cơ sở dữ liệu nào. Việc xác định các chỉ mục phù hợp có thể tạo ra sự khác biệt lớn đối với hiệu suất của các máy chủ cơ sở dữ liệu của bạn. Tuy nhiên, việc tạo chỉ mục trong MongoDB có một số cạm bẫy mà bạn cần lưu ý đối với các hoạt động hàng ngày của mình. MongoDB ở cấp độ cao hỗ trợ ba kỹ thuật để xây dựng chỉ mục trên bộ sưu tập của bạn.

1. Xây dựng chỉ mục tiền cảnh

Khi bạn tạo một chỉ mục ở phía trước, nó sẽ chặn tất cả các thao tác khác trên cơ sở dữ liệu - trên một bộ sưu tập lớn, thời gian này có thể kéo dài vài giờ. Điều này ngụ ý rằng cơ sở dữ liệu của bạn không hoạt động trong suốt thời gian xây dựng chỉ mục. Cho rằng đây là chế độ mặc định của việc xây dựng chỉ mục, không có gì ngạc nhiên khi rất nhiều nhà phát triển tự bắn vào chân mình để kích hoạt các bản dựng chỉ mục tình cờ. Thực sự không có lý do chính đáng để kích hoạt xây dựng chỉ mục nền trước trên máy chủ sản xuất (trừ khi bạn biết rằng bộ sưu tập có một lượng nhỏ dữ liệu).

2. Xây dựng chỉ mục nền

Như tên gọi của nó, quá trình lập chỉ mục nền xây dựng chỉ mục trong nền mà không ảnh hưởng đến tính khả dụng của máy chủ cơ sở dữ liệu của bạn. Tuy nhiên, đây vẫn là một hoạt động sử dụng nhiều tài nguyên và bạn sẽ thấy sự suy giảm hiệu suất. Ngoài ra, vì nó đang diễn ra ở chế độ nền nên có thể mất nhiều thời gian để xây dựng hơn các chỉ mục nền trước. Trong các phiên bản trước của MongoDB (<2,6) khi bạn thực hiện xây dựng chỉ mục nền trên bản chính của một tập hợp bản sao, nó sẽ chạy dưới dạng bản dựng "nền trước" trên các máy chủ thứ cấp, rất may, nó không còn như vậy nữa - đó là bản xây dựng trên nền tất cả các nút. Nếu quá trình xây dựng chỉ mục nền bị gián đoạn, nó sẽ tiếp tục như một quá trình xây dựng chỉ mục nền trước khi khởi động lại máy chủ.

3. Tạo chỉ mục cuộn

Quá trình xây dựng chỉ mục luân phiên xây dựng chỉ mục trên chỉ một nút tại một thời điểm. Nó diễn ra như thế này:

  1. Xoay nút phụ ra khỏi tập hợp bản sao (bạn có thể thực hiện việc này bằng cách thay đổi các cổng hoặc khởi động lại ở chế độ độc lập).
  2. Xây dựng chỉ mục trên nút này ở nền trước. Sau khi chỉ mục được tạo, hãy xoay nút trở lại tập hợp bản sao.
  3. Khi nút đã bắt kịp các thay đổi, hãy chuyển sang nút tiếp theo. Nếu nút tiếp theo là nút chính, bạn sẽ cần thực hiện một rs.stepDown () để biến nó thành nút phụ.
  4. Rửa sạch và lặp lại.

Thông tin chi tiết về quy trình tạo chỉ mục có trong tài liệu MongoDB.

Sử dụng các bản dựng chỉ mục cuộn, bạn có thể tạo chỉ mục mà không có bất kỳ tác động đáng kể nào đến hiệu suất cho ứng dụng của mình. Tuy nhiên, có liên quan đến chuyển đổi dự phòng - vì vậy ứng dụng của bạn sẽ có thể xử lý điều đó (dù sao thì ứng dụng này cũng cần).

Bạn có thể thực hiện xây dựng chỉ mục luân phiên nếu bạn không có tập hợp bản sao không? Thật không may đối với các phiên bản độc lập, tùy chọn duy nhất là “Xây dựng chỉ mục nền”.

Xây dựng chỉ mục Rolling là cách tiếp cận ưa thích của chúng tôi để xây dựng chỉ mục tại ScaleGrid. Chúng tôi thậm chí còn cung cấp giao diện người dùng và giúp bạn dễ dàng bắt đầu toàn bộ quá trình từ giao diện người dùng của chúng tôi. Phần phụ trợ của chúng tôi sẽ thực hiện tất cả các điều phối cần thiết cho việc xây dựng chỉ mục đầy đủ - nó sẽ kích hoạt một máy chủ theo xây dựng chỉ mục máy chủ. Bạn chỉ cần thiết lập với chúng tôi, sau đó trỏ chuột và nhấp vào!

Như thường lệ, nếu bạn có thêm câu hỏi, bạn có thể liên hệ với chúng tôi theo địa chỉ [email protected].


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Chuyển đổi ngày từ mili giây sang đối tượng ISODate

  2. Xóa phần tử khỏi mongodb mảng lồng nhau

  3. Sao băng không có mongo

  4. Tra cứu MongoDB khi trường ngoại là một mảng các đối tượng

  5. Bắt MongoDB trên Linux để nghe các kết nối từ xa