2009-09-25 19 views

Trả lời

23

Có, nó sẽ tăng kích thước chỉ mục của bạn, bởi vì CouchDB sao chép hiệu quả toàn bộ tài liệu trong các trường hợp đó. Đối với các trường hợp bạn có thể sử dụng, hãy sử dụng include_docs=true.

Tuy nhiên, có một điều kiện chủng tộc cần lưu ý khi sử dụng điều này được đề cập trong wiki. Có thể, trong thời gian giữa đọc dữ liệu xem và tìm nạp tài liệu, tài liệu đã thay đổi (hoặc đã bị xóa, trong trường hợp này _deleted sẽ là true). Đây là tài liệu here trong "Tùy chọn truy vấn".

+0

hoàn hảo, cảm ơn. tôi nhớ đã đọc về điều kiện chủng tộc, nhưng tác dụng phụ của việc bao gồm cả tài liệu trong bài phát biểu đã không xảy ra với tôi cho đến sau này. – kolosy

2

Đây là sự cân bằng thời gian/không gian cổ điển.

Phát dữ liệu tài liệu vào chỉ mục của bạn sẽ tăng kích thước tệp chỉ mục trên đĩa vì CouchDB bao gồm dữ liệu được phát trực tiếp vào tệp chỉ mục. Tuy nhiên, điều này có nghĩa rằng, khi truy vấn dữ liệu của bạn, CouchDB chỉ có thể truyền nội dung trực tiếp từ tệp chỉ mục trên đĩa. Điều này rõ ràng là khá nhanh.

Thay vào đó, trên include_docs=true sẽ giảm kích thước chỉ mục trên đĩa của bạn, đó là sự thật. Tuy nhiên, khi truy vấn, CouchDB phải thực hiện đọc tài liệu cho mỗi hàng được trả về. Điều này liên quan đến việc tìm kiếm tài liệu cơ bản ngẫu nhiên từ tệp dữ liệu chính, có nghĩa là chi phí và thời gian trả về dữ liệu tăng đáng kể.

Trong khi chênh lệch thời gian truy vấn cho số lượng tài liệu nhỏ chậm, nó sẽ tăng lên trên mọi cuộc gọi được thực hiện bởi ứng dụng. Đối với tôi, do đó, phát ra các lĩnh vực cần thiết từ một tài liệu vào chỉ mục thường là cuộc gọi đúng - đĩa là giá rẻ, sự chú ý của người dùng kéo dài ít hơn như vậy. Điều này tương tự như việc sử dụng các chỉ mục bao trùm trong một cơ sở dữ liệu quan hệ, một lời khuyên được lặp lại rộng rãi khác.

Tôi đã làm hoàn toàn không khoa học test on this để có được cảm nhận về sự khác biệt là gì. Tôi tìm thấy khoảng thời gian phản hồi tăng gấp 8 lần và CPU tăng 50% khi sử dụng include_docs=true để đọc 100.000 tài liệu từ chế độ xem khi so sánh với chế độ xem nơi tài liệu được phát trực tiếp vào chính chỉ mục.

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