在我的第一台服务器上我得到:
root@prod ~ # du -hs /var/lib/mongodb/
909G /var/lib/mongodb/
Run Code Online (Sandbox Code Playgroud)
迁移此数据库与mongodump/mongorestore在我的第二台服务器上,我得到:
root@prod ~ # du -hs /var/lib/mongodb/
30G /var/lib/mongodb/
Run Code Online (Sandbox Code Playgroud)
在我等了几个小时后,mongo完成索引我得到了:
root@prod ~ # du -hs /var/lib/mongodb/
54G /var/lib/mongodb/
Run Code Online (Sandbox Code Playgroud)
我测试了数据库,没有损坏或遗漏的数据.
为什么迁移前后的大小差异如此之大?
我使用的是redis 2.6。我遇到过奇怪的ZRANGEBYSCORE功能行为。我有一个长度约为几百万个元素的排序集。像这样的东西:
10 marry
15 john
25 bob
...
Run Code Online (Sandbox Code Playgroud)
因此与查询进行比较:
ZRANGEBYSCORE longset 25 50 LIMIT 0 20 works like a charm, it takes milliseconds
ZRANGEBYSCORE longset 25 50 this one hangs up for a minutes!!
Run Code Online (Sandbox Code Playgroud)
我感兴趣的所有元素都在该集合的前一百个中。我认为不需要扫描权重大于“50”的元素,因为它是排序集。
请解释一下redis如何扫描排序集以及为什么这两个查询之间有如此大的差异。