MongoDB身上一些局限的功能及目前做得不够好的地方。其中包括了原本就并非MongoDB想做的部分,也包括了MongoDB想做但没做好的方面。 - 在32位系统上,不支持大于2.5G的数据。
- 单个文档大小限制为 4 M/16 M(1.8版本后升为16M)
- 锁粒度太粗,MongoDB使用的是一把全局的读写锁,
- 不支持join操作和事务机制,这个确实是非MongoDB要做的领域
- 对内存要求比较大,至少要保证热数据(索引,数据及系统其它开销)都能装进内存
- 用户权限方面比较弱,这一点MongoDB官方推荐的是将机器部署在安全的内网环境中,尽量不要用权限
- MapReduce在单个实例上无法并行,只有采用Auto-Sharding才能并行。这是由JS引擎的限制造成的
- MapReduce的结果无法写入到一个被Sharding的Collection中,2.0版本对这个问题的解决好像也不彻底
- 对于数组型的数据操作不够丰富
- Auto-Sharding还存在很多问题,所谓的水平扩展也不是那么理想
|