Couchbase查询执行时间?

Vij*_*jay 6 performance execution-time nosql sql-execution-plan couchbase

如何在Couchbase中计算查询时间和查询执行计划.是否有任何实用程序,如Oracle解释计划和Couchbase数据库中的tkprof?

编辑:


我试图看看哪个数据库最适合我的数据.所以我想尝试使用mysql,mongodb,couchbase.我尝试了三个不同数量的条目10k,20k,40k条目.

使用mysql,我可以使用"set profiling = 1"查看查询时间.使用此设置我在三种情况下运行查询1)没有索引主键,2)索引主键3)第二次运行相同的查询(以查看查询缓存的效果)

同样,我使用mongodb运行相同的测试,并以表格格式汇总我的结果.我想用couchbase运行相同的测试,看看它的性能如何.我试图搜索网络,但找不到任何我可以遵循以获得类似结果的内容.

下面是我的表(所有时间都是毫秒).带有大括号()的第二行显示第二次运行的查询时间.

Records Count       Mysql           MongoDB         CouchBase
        ___________________     _______________     ___________
        Without   | With        Without | With      With Index
        Index     | Index       Index   | Index 

10K     62.27325  | 8.537       3311    | 33
        (33.3135) | (3.27825)       (7) | (0)




20K     108.4075  | 23.238      132 | 39    
        (80.90525)| (4.576)     (17)    | (0)



40K     155.074  | 26.26725     48  | 10
        (110.42) | (10.037)     (42)    | (0)


对于couchbase,我想知道使用其密钥检索文档时的性能(类似于memcahed的功能).查询时间也使用其视图.

sca*_*ved 11

您必须了解couchbase的工作方式与Oracle之类的RDBMS不同.Couchbase提供两种检索数据的方法:

1)密钥查找,您知道要检索的文档的密钥.

2)定义Map Reduce名为Views的作业,它创建索引,允许您在除键之外的属性上查询数据.

Couchbase文档总是一致的,但视图不是并且最终是一致的(尽管您有能力更改它).

正如couchbase文档所述

当文档数据持久保存到磁盘时,视图会更新.创建或更新文档与在视图中更新的文档之间存在延迟.

所以查询时间真的取决于各种因素,视图数据可以陈旧吗?从索引发出的数据有多大,当前的工作负载和数据库大小是多少?Couchbase提供以下3个标志,用于处理视图以及如何访问数据.False意味着必须在返回结果之前更新索引,因此它可能很慢.

  • false:在返回数据之前强制执行视图更新
  • ok:允许陈旧的视图
  • update_after:允许过时视图,访问后更新视图

请查看官方文档以获取更深入的答案http://docs.couchbase.com/couchbase-manual-2.2/#views-and-indexes

您还可以查看有关缓存视图的这篇有趣文章http://blog.couchbase.com/caching-queries-couchbase-high-performance

目前正在开发的Couchbase是N1QL,实际上是沙发基础版的SQL,这将有EXPLAIN语句可用,这将不会发布到2014年底我相信.

一篇介绍N1QL的博客文章 http://blog.couchbase.com/n1ql-it-makes-cents

N1QL的备忘单 http://www.couchbase.com/communities/sites/default/files/Couchbase-N1QL-CheatSheet.pdf

如果您想使用N1QL http://www.couchbase.com/communities/n1ql,可以下载开发预览版

另外,请查看cb stats工具http://docs.couchbase.com/couchbase-manual-2.2/#cbstats-tool,它提供了持久率,更新,关键未命中等的高级概述.