如何在Couchbase中计算查询时间和查询执行计划。Couchbase数据库中是否有诸如Oracle Explain计划和tkprof之类的实用程序?
编辑:
我试图查看哪个数据库最适合我的数据。所以我正在尝试使用mysql,mongodb,couchbase。我尝试了三种不同数量的条目10k,20k,40k条目。
使用mysql,我可以使用“设置配置文件= 1”查看查询时间。使用此设置,我在以下三种情况下运行查询:1)不索引主键,2)在索引主键之后3)第二次运行相同的查询(以查看查询缓存的效果)
同样,我对mongodb进行了相同的测试,并以表格格式总结了我的结果。我想对Sofabase进行相同的测试,以查看其性能如何。我尝试通过网络进行搜索,但找不到任何可以遵循的方法以获得相似的结果。
以下是我的表格(所有时间均为毫秒)。带braces()的第二行显示第二次运行的查询时间。
记录计数Mysql MongoDB CouchBase
___________________ _______________ ___________
没有|有无|带索引
索引|索引索引|指数
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,我想在使用文档 key (类似于memcahed的功能)检索文档时同时了解两种性能。还使用其 View 查询时间。
最佳答案
您必须了解,Couchbase与RDBMS(例如Oracle)的工作方式不同。 Couchbase为您提供了两种检索数据的方式:
1) key 查找,您知道要检索的文档的 key 。
2)定义称为Maps的Map Reduce作业,该作业创建索引,使您可以查询除键之外的其他属性上的数据。
Couchbase文档始终是一致的,但是 View 不一致,并且最终还是一致的(尽管您可以更改此内容)。
如沙发床文档所述
Views are updated when the document data is persisted to disk. There is a delay between creating or updating the document, and the document being updated within the view.
因此查询时间确实取决于多种因素, View 数据是否过时?索引发出的数据有多大?当前的工作量和数据库大小是多少? Couchbase提供了以下3个标志,用于处理 View 以及您如何访问数据。 False表示索引必须在返回结果之前进行更新,因此它可能很慢。
请查看官方文档以获取更多深入的答案http://docs.couchbase.com/couchbase-manual-2.2/#views-and-indexes
您也可以查看有关缓存 View 的这篇有趣的文章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
还要 checkout cb stats工具http://docs.couchbase.com/couchbase-manual-2.2/#cbstats-tool,它可以提供有关持久性,更新, key 遗漏等的高级概述。
关于performance - Couchbase查询执行时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20424616/