MongoDB的特性、优点和不擅长领域是什么
-
chenfeng
2016-05-31 15:03:33
-
NoSQL
-
原创
MongoDB的特性
-
1).简单的查询语句,没有Join操作
-
2).文档型存储,其数据是用二进制的Json格式Bson存储的。其数据就像Ruby的hashes,或者Python的字典,或者PHP的数组
-
3).Sharding,MongoDB提供auto-sharding实现数据的扩展性
-
4).GridFS,MongoDB的提供的文件存储API
-
5).数组索引,你可以对文档中的某个数组属性建立索引
-
6).MapReduce,可以用于进行复杂的统计和并行计算
-
7).高性能,通过使用mmap和定时fsync的方法,避免了频繁IO,使其性能更高
MongoDB的优点
-
1).高性能,速度非常快(如果你的内存足够大的话)
-
2).没有固定的表结构,不用为了修改表结构而进行数据迁移
-
3).查询语言简单,容易上手
-
4).使用Sharding实现水平扩展
-
5).部署方便
使用MongoDB,你得记住以下几点:
-
1).MongoDB 假设你有大磁盘空间
-
2).MongoDB 假设你的内存也足够大于放下你的热数据
-
3).MongoDB 假设你是部署在64位系统上的(32位数据文件有2G大小的限制,试用还可以)
-
4).MongoDB 假设你的系统是little-endian的
-
5).MongoDB 假设你有多台机器(并不专注于单机可靠性)
-
6).MongoDB 假设你希望用安全换性能,同时允许你用性能换安全
MongoDB在下面领域不太擅长:
-
1).不太稳定,特别是auto-sharding目前还有很多问题
-
2).不支持SQL,这意味着你很多通过SQL接口的工具不再适用
-
3).持久化,MongoDB单机可靠性不太好,宕机可能丢失一段时间的数据
-
4).相关文档比较少,相关人才比较难找