在测试读性能的时候,我用的是query函数,搜索条件只包括_id值,顺序查找,按说应该是使用了默认索引查询,collection中的数据是1000万,collectionspace中比较多数据,不过应该是没用关系的吧。使用java driver,单机节点,目前有两个疑惑:
1. 查询1千条需要1s,查询1w就需要86s。感觉这种增加不太正常,而本身1W查询需要如此长的时间也难以接受啊。
2.随着查询循环次数的增加会越来越慢?这个很奇怪啊,我在测试写的时候都没有出现这个问题,为什么读反而越来越慢了呢?
对于第二条补充下:对同一个collection,5次读取1W条结果如下:
testDBa2The time used: 86.0
testDBa2The time used: 172.0
testDBa2The time used: 181.0
testDBa2The time used: 179.0
testDBa2The time used: 180.0
对于不同collection 5次读取1W条结果如下:
testDBa2The time used: 86.0
testDBa2The time used: 192.0
testDBa2The time used: 301.0
testDBa2The time used: 396.0
testDBa2The time used: 492.0
这个读的性能和什么相关呢?为什么会出现这样的现象呢?是我的index没有在内存中,载入需要时间?