У меня есть около 50 документов в моей сумке DB. Я запрашиваю базу данных, пока загружается угловая служба. Я знаю, что мы можем использовать метод alldocs, который намного быстрее, чем метод запроса. Но в моем случае allDocs не достаточно, потому что каждый документ будет иметь lastUpdatedTime в миллисекундах. Основываясь на lastUpdatedTime, я буду запрашивать БД, чтобы получить новую сортировку записей по lastUpdatedTime. Но метод alldocs не имеет возможности сортировать документы на основе зарегистрированного документа. Мой дизайн док-то вроде этого var byTimestampDoc = this.createDesignDoc('by_timestamp', function (doc) { if (doc.objType == "message") { emit(doc.lastUpdated); } }); db.put(byTimestampDoc)
pouchdb.query занимает больше времени
Сейчас запрос принимает около 9781.726ms для возврата строки при загрузке приложения в Android, но в прошивкой он занимает менее 3 секунд. Может ли кто-нибудь помочь мне улучшить производительность.
Но тот же код выполняется довольно быстро в iOS. – Krishna
Если я использую метод allDocs, чтобы получить записи в моем контроллере, а затем после этого, если я буду сортировать эти записи программно на основе lastUpdatedTime, у него будет какая-либо проблема с производительностью, чем query(). Если я загружаю записи с помощью allDocs с моего контроллера, это занимает меньше времени. Но тот же код, если я нахожу внутри службы, которая требует времени. – Krishna
Если вы выполняете сортировку в памяти, тогда вы читаете всю базу данных, чтобы отсортировать ее. Это может быть быстрее, если ваши данные постоянно меняются, но в этом случае я бы спросил, имеет ли смысл использовать PouchDB, или если вы должны просто хранить все свои объекты в памяти, а затем сохранять их как один большой кусок JSON для LocalForage , Может иметь смысл. – nlawson