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

thực hành tốt nhất của gộp django + PyMongo?

Tổng hợp kết nối hoạt động như thế nào trong PyMongo?

Mọi phiên bản Kết nối đều có tích hợp kết nối tích hợp sẵn. Theo mặc định, mỗi luồng được dành riêng ổ cắm của nó trong lần hoạt động đầu tiên của nó. Thosesockets được giữ cho đến khi chuỗi đó gọi end_request ().

Việc gọi end_request () cho phép socket được trả về nhóm và được các luồng khác sử dụng thay vì tạo một socket mới. Việc sử dụng tốt phương pháp này rất quan trọng đối với các ứng dụng có nhiều luồng hoặc với các luồng chạy dài thực hiện ít lệnh gọi đến PyMongooperations .

Ngoài ra, một Kết nối được tạo bằng auto_start_request =False sẽ chia sẻ các ổ cắm (một cách an toàn) giữa tất cả các chuỗi.

Tôi nghĩ rằng nó phụ thuộc vào loại ứng dụng bạn có và thời gian các yêu cầu sẽ giữ kết nối. Ý tưởng gọi end_request giúp giải quyết các yêu cầu đang hoạt động lâu, giữ một ổ cắm trong thời gian dài và gây ra nhiều ổ cắm được tạo. Nếu một yêu cầu duy nhất có thể giải phóng kết nối khi nó không còn cần nữa, thì ổ cắm có thể được định vị lại cho các yêu cầu khác.

Nếu chúng là những yêu cầu nhanh thì tôi tin rằng auto_start_request=False hoạt động bằng cách sử dụng lại ổ cắm.

Đảm bảo kết nối tiếp tục sử dụng cùng một ổ cắm có nghĩa là sẽ có các lần đọc nhất quán. Hãy suy nghĩ nếu bạn đã thực hiện một truy vấn nhưng nó bị trì hoãn, và sau đó thực hiện một truy vấn khác một cách lịch sự và nó sử dụng một ổ cắm khác. Ổ cắm này quản lý để phản hồi trước ổ cắm trước. Bạn sẽ có dữ liệu không nhất quán vì nó không phản ánh lần ghi trước đó.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tại sao tôi nhận được cảnh báo không dùng nữa này ?! MongoDB

  2. Tính tổng trong tài liệu lồng nhau MongoDB

  3. Cách quản lý cơ sở dữ liệu và bộ sưu tập trong MongoDB

  4. Mongodb Giải thích cho khung Tổng hợp

  5. MongoDB $ phút