Większość badań, które widziałem na temat podziału na strony w CouchDB sugeruje, że musisz wziąć pierwsze dziesięć (lub jak najwięcej) elementów z widoku, a następnie nagrać dokument docid ostatniego dokumentu i przekazać go na następnej stronie . Niestety, widzę kilka rażących problemów z tą metodą.Bezstanowe dzielenie na strony w CouchDB?
- To najwyraźniej sprawia, że niemożliwe, aby przejść wokół wewnątrz zbioru stron (jeśli ktoś przeskakuje bezpośrednio do strony 100, trzeba by uruchomić zapytań dla stronach 2-99 więc wiedziałby jak załadować strona 100) .
- Wymaga to podania możliwie dużej ilości informacji o stanie między stronami.
- Trudno jest poprawnie kodować.
Niestety my research wykazały, że przy użyciu skip
rozwija znaczne spowolnienie dla zbiorów 5000 rekordów lub większe, i będzie pozytywnie wyniszczający po osiągnięciu czegoś naprawdę ogromny (idąc do strony 20000 z 10 rekordów na stronie zajęłoby około 20 sekund - i tak, są zestawy danych, które są duże w produkcji). Więc to naprawdę nie jest opcja.
Tak, o co pytam, czy istnieje skuteczny sposób na przeglądanie stron w wynikach w CouchDB, dzięki czemu można uzyskać wszystkie pozycje z dowolnej strony? (Używam couchdb-python, ale mam nadzieję, że nie ma w tym nic, co byłoby zależne od klienta.)