MongoDB刚刚发布了其2.4版本,是目前最新的稳定版。此版本包括了一些性能优化,功能增强以及bug修复。更细节的信息可以查看下面几个链接:
下面是MongoDB 2.4 版本的一些主要功能点:
- Hash-based Sharding
- Capped Arrays
- Text Search (Beta)
- Geospatial Enhancements
- Faster Counts
- Working Set Analyzer
- V8 JavaScript engine
- Security
Hash-based Sharding: 与原来按范围做sharding相对,MongoDB 2.4 增加了基于Hash的分片策略选择。这样可以更轻松地实现数据在各节点的均匀分布。当你对MongoDB 单条记录的访问比较随机时,可以考虑采用这种模式。
Capped Arrays: 此版本还提供了对Array类型截断操作。在使用$push 操作符向一个Array 中添加数据时,你可以再通过新增的$slice操作符指定将这个Array 进行指定长度的截断。这样可以让一个Array保持在一个固定的长度。在此操作中,你还可以指定一个排序方法,在截断前将Array 先进行排序,截取排序后的头或尾来。
Text Search: 全文索引是此次改造最大的功能改进点,目前支持15种语言的全文索引,
Geo Capabilities: MongoDB 2.4 引入了GeoJSON的支持,GeoJSON能够提供更精确的地理位置索引。
Faster Counts: MongoDB 2.4 对Count操作进行了各式各样的优化,使得在很多场景下Count操作能够比过去更快。比如在b-tree的一个分支中,如果第一个元素和最后一个元素都在count条件满足的范围内,那么中间的元素肯定都在此范围内,就不再做挨个的遍历操作了。
Working Set Analyzer: 容量规划一直是使用MongoDB cluster时需要特别关心的一件事。在2.4版本中,MongoDB提供了一个分析模块,可以让你实时查看到当前的资源使用状况。通过这一模块,你能够知道过去15分钟内MongoDB需要的内存页数,通过对这个数据进行持续监控,你能够及时发现内存不够用的趋势,并着手进行相应的扩容和调整。
New V8 Engine: MongoDB 2.4 中,将内部的JavaScript引擎切换到了Google Chrome使用的V8引擎上,V8引擎的引入,可以有效提升MongoDB的并发性能。
Security: MongoDB 2.4 中增加了两个方面的案例性增强,引入了 Kerberos Authentication 和 Role Based Access Control 两种机制. Kerberos 是 MongoDB 企业版的安全机制,能够支持企业级系统的权限认证。Role Based Access Control 允许更细粒度的权限管理。
本版本一共进行了数百项改进(692项),本文当然无法一一列举,详细的列表你可以在 changelog 中进行查看。
所有的mongodb连接都需要用户名密码进行操作,加了授权。 去博客里找找应该有介绍。
之余慢的原因:磁盘IO很低,内存使用也很低 。估计就是数据量过大。有一些查询用到的字段没有建索引。排除一下看看是不是这个问题。也可以用mongodb提供的测试慢查询的工具。看看是什么查询比较慢。
你好。
我想请教下。
现状: mongodb 1.6.5 几年前开始用的,到现在数据量大概200多个G,存的内容主要为文档和规则. 主从模式(ab 机)异地灾备中心还有一台(c机) 从节点。 现在发现主节点CPU 在早高峰的时候cpu占用到了80-90% (4核)导致业务网站页面很慢,磁盘IO很低,内存使用也很低。(Intel Xeon E5506 QC 2.13GHz, 44GB DDR3 内存,61TB 3.5"SATA(raid5)ABC机器配置。) 如何优化? 现在我们想直接升级到2.4.3,是否能直接升? 如何修改模式成副本集模式是否性能会好些? 所有的mongodb连接都需要用户名密码进行操作,加了授权。