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

Việc thực hiện cập nhật một phần tài liệu MongoDb trong WiredTiger có cung cấp bất kỳ lợi thế nào so với cập nhật toàn bộ tài liệu không?

WiredTiger sử dụng Kiểm soát đồng tiền đa vũ trụ (MVCC) để duy trì nhiều chế độ xem dữ liệu trong suốt thời gian của người đọc. Định dạng trong bộ nhớ của WiredTiger khác với định dạng trên đĩa:trong bộ nhớ mà nó lưu trữ khác với tài liệu, nhưng một phiên bản đầy đủ của tài liệu được tạo khi chuyển sang tệp dữ liệu như một phần của điểm kiểm tra định kỳ.

Bất kể các công cụ lưu trữ MongoDB khác nhau xử lý các bản cập nhật liên tục cho đĩa như thế nào, vẫn có những lợi ích về hiệu suất khi sử dụng các bản cập nhật một phần thay vì bản cập nhật toàn bộ nếu có thể (đặc biệt nếu bạn đang đặt các giá trị trường nhỏ so với kích thước tài liệu tổng thể).

Ví dụ, hãy xem xét:

  • Lưu lượng mạng để cập nhật tài liệu (bất kỳ công cụ lưu trữ nào)
  • Kích thước của các mục trong nhật ký (bất kỳ công cụ lưu trữ nào)
  • Kích thước của các mục nhập trong nhật ký sao chép (bất kỳ công cụ lưu trữ nào)
  • Kích thước của các phiên bản cập nhật trong bộ nhớ (WiredTiger)

Nếu bạn đang gửi các bản cập nhật tài liệu đầy đủ mỗi lần, bạn cũng tạo ra các tình huống trong đó thứ tự các bản cập nhật đến máy chủ là quan trọng ngay cả khi các thay đổi có thể dành cho các nhóm trường riêng biệt. Bạn có thể thêm logic ứng dụng bổ sung, chẳng hạn như lập phiên bản lạc quan để đảm bảo bạn không vô tình ghi đè các giá trị trường, nhưng điều này có thể thêm phức tạp không cần thiết tùy thuộc vào trường hợp sử dụng của bạn.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách thực thi tổng hợp trong mongodb trong khung công tác Laravel

  2. Sao chép cơ sở dữ liệu trong Mongodb giữa các máy chủ sử dụng trình điều khiển nút

  3. Tải tệp lên và tải xuống bằng sao băng

  4. Cách sử dụng $ regex trong truy vấn tổng hợp mongodb trong $ match

  5. Tổng kích thước bộ nhớ MongoDB