我们使用Couchbase和CBL已有3年多了,一件事总是很麻烦。当我们执行查询以从键上的表达式读取条目时,Couchbase查询的执行会大大降低我们应用程序的性能。例如我们的CBL中有25000个数据条目,且文档相对较小。读取100个条目需要0.5秒,这对于我们的应用程序是不可接受的。这些文档仅包含很小的JSON文档。从理论上讲,我们可以在数据库启动时一次将所有数据读入对象中,从而只执行一次查询并管理Swift文档(实际上是前一阵子)中的数据,但这不是本地数据库的想法,如果我没有记错的话,这会使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 { }
我目前正在使用Pod CouchbaseLite-Swift(2.7.0),但我们也遇到了以前版本的问题
我们使用Couchbase和CBL已有3年多了,一件事总是很麻烦。当我们执行查询以通过键从表达式读取条目时,Couchbase查询的执行将减少...
此处为Couchbase Lite架构师...