Мы используем Couchbase и CBL уже более 3 лет, и всегда беспокоит одна вещь. Когда мы выполняем запросы для чтения записей из выражений по ключам, выполнение запроса Couchbase значительно снижает производительность наших приложений. Например у нас есть 25000 записей данных с относительно небольшими документами в нашем CBL. Чтение 100 из этих записей занимает 0,5 секунды, что неприемлемо для нашего приложения. Документы содержат только очень маленькие JSON документы. Мы можем теоретически прочитать все данные в объекты один раз в начале базы данных, чтобы выполнить только один запрос и управлять данными в документах Swift, которые мы фактически делали некоторое время go, но это не идея локальной базы данных, если я не ошибаясь, это сделало бы CBL в значительной степени бесполезным. Есть ли что-то, что мы упускаем при построении запроса или общего Couchbase? Как мы можем читать данные быстрее?
Я пишу здесь, надеясь, что мы что-то упустили в Couchbase, потому что выполнение этих запросов с помощью SQL кажется намного быстрее. Время выполнения, которое я упоминаю, конечно, отличается на разных устройствах, но на каждом устройстве, которое я использую, оно составляет примерно полсекунды, и это слишком медленно для 100 записей
Время, которое занимают разные задачи (1) Занимает 0,5 секунды ( 2) Занимает 0,0001 секунды. Выполнение нескольких таких запросов занимает вечно
Вот код, который мы используем в Swift:
let ourDocumentKeyPrefix = "SomeKeyPrefix"
let query = QueryBuilder
.select(
SelectResult.all(),
SelectResult.expression(Meta.id)
)
.from(DataSource.database(database!))
.where(Meta.id.like(Expression.string(\(ourDocumentKeyPrefix)::%"))
)
do {
for result in try query.execute() { **//(1)** executing Couchbase query
**//(2)** my extraction data code here....
}
} catch {
}
В настоящее время я использую модуль CouchbaseLite-Swift (2.7.0), но у нас тоже была проблема с предыдущими версиями