2010-04-06 44 views
8

Nếu số lượng tài liệu nhiều hơn thì truy vấn dữ liệu sẽ chậm hơn trong CouchDB?Hiệu suất truy vấn CouchDB

Ví dụ Kịch bản:

  • Tôi có một combobox trong một hình thức cho tên của khách hàng. Khi người dùng nhập tên khách hàng, tôi phải tự động điền.
  • Sẽ có khoảng 10 nghìn tài liệu khách hàng trong CouchDB. Tôi hiểu rằng tôi phải tạo ra một cái nhìn để làm như vậy.
  • Cơ sở dữ liệu CouchDB nằm trong máy cục bộ nơi ứng dụng cư trú.

Câu hỏi: Sẽ mất hơn 2 - 3 giây để truy vấn DB cho tên khách hàng phù hợp? Truy vấn sẽ mất nhiều thời gian hơn cho mỗi truy vấn nếu có nhiều tài liệu trong CouchDB (nói khoảng 100000 tài liệu)?

Mọi gợi ý về cách tạo chế độ xem/chỉ mục sẽ hữu ích.

Xin cảm ơn trước.

Trả lời

7

Chế độ xem chạy trên mọi tài liệu nhưng chỉ một lần. Sau đó, (các) giá trị xem của tài liệu được lưu trữ mãi mãi. Tìm nạp khách hàng theo tên sẽ rất nhanh vì bạn thường chỉ có một vài tài liệu mới để xử lý trong chế độ xem tại thời điểm truy vấn.

Thời gian truy vấn sẽ không tăng đáng kể nếu bạn có nhiều tài liệu hơn. Về mặt kỹ thuật, thời gian truy cập tăng theo lôgarit với số lượng tài liệu. Tuy nhiên, trong thực tế lấy tài liệu về cơ bản là thời gian không đổi và rất khó có thể là một vấn đề.

+0

Xin chào @JasonSmith, có cách nào giải quyết được vấn đề về hiệu suất thời gian đầu tiên chậm không? Tôi đã chắc chắn nhìn thấy hit đầu tiên trên xem mất mãi mãi (giao dịch với 10k tài liệu trong một lần xem). Có cách nào để phát hiện xem lượt xem đã được chạy trước/thực hiện lần đầu tiên không? – Bundeeteddee

+0

@Bundeeteddee Bạn có thể thêm tùy chọn? Stale = update_after, tùy chọn này sẽ trả về bất kỳ nội dung nào trong chế độ xem ngay lập tức và nó sẽ bắt đầu làm mới chế độ xem ở chế độ nền. Điều đó sẽ làm một sự cân bằng: bạn nhận được câu trả lời ngay lập tức, nhưng nó có thể không phải là dữ liệu mới nhất. Ngoài ra, bạn có thể truy vấn _canges? Feed = liên tục và sau đó bạn có thể truy vấn khung nhìn bất cứ khi nào CouchDB thông báo cho bạn rằng một thay đổi đã xảy ra. Phải mất một chút công việc nhưng đó là cách chắc chắn nhất – JasonSmith

Các vấn đề liên quan