我在CouchDB分頁中看到的大多數研究表明,您需要做的是從視圖中獲取前十個(或多個)項目,然後記錄最後一個文檔的docid並將其傳遞到下一頁。不幸的是,我可以看到這種方法的一些明顯的問題。CouchDB中無狀態分頁?
- 它顯然使得它不可能在一組頁面內四處跳躍(如果有人直接跳到100頁,你就必須運行2-99頁的查詢,這樣你就知道如何加載100頁) 。
- 它需要你在頁面之間傳遞很多狀態信息。
- 很難正確編碼。
不幸的是,my research表明,使用skip
開發數據集的5000條記錄或更大的顯着減緩,並會積極沉重的,一旦你達到什麼真正的巨大的(要20000頁10條記錄到一個頁面需要大約20秒 - 是的,有數據集生產大)。所以這不是一個真正的選擇。
所以,我問的是,有沒有一種有效的方式來分頁查看結果在CouchDB中,可以從任意頁面獲取所有項目? (我使用couchdb-python,但希望沒有任何關於這將取決於客戶端。)