MongoDB:下一代MySQL (转)

转 http://blog.nosqlfan.com/html/2215.html

原文标题是《Is MongoDB the next big thing?》,请允许我把big thing等同于目前应用最广泛的开源数据库 MySQL。作为当下最热门的NoSQL之一,下面我们就来看看它具体的优点与不足。

MongoDB的特性

  • 简单的查询语句,没有Join操作
  • 文档型存储,其数据是用二进制的Json格式Bson存储的。其数据就像Ruby的hashes,或者Python的字典,或者PHP的数组
  • Sharding,MongoDB提供auto-sharding实现数据的扩展性
  • GridFS,MongoDB的提供的文件存储API
  • 数组索引,你可以对文档中的某个数组属性建立索引
  • MapReduce,可以用于进行复杂的统计和并行计算
  • 高性能,通过使用mmap和定时fsync的方法,避免了频繁IO,使其性能更高

MongoDB的优点

  • 高性能,速度非常快(如果你的内存足够的话)
  • 没有固定的表结构,不用为了修改表结构而进行数据迁移
  • 查询语言简单,容易上手
  • 使用Sharding实现水平扩展
  • 部署方便

使用MongoDB,你得记住以下几点:

  • MongoDB 假设你有大磁盘空间
  • MongoDB 假设你的内存也足够大于放下你的热数据
  • MongoDB 假设你是部署在64位系统上的(32位有2G的限制,试用还可以)
  • MongoDB 假设你的系统是little-endian的
  • MongoDB 假设你有多台机器(并不专注于单机可靠性)
  • MongoDB 假设你希望用安全换性能,同时允许你用性能换安全

MongoDB在下面领域不太擅长

  • 不太稳定,特别是auto-sharding目前还有很多问题
  • 不支持SQL,这意味着你很多通过SQL接口的工具不再适用
  • 持久化,MongoDB单机可靠性不太好,宕机可能丢失一段时间的数据
  • 相关文档比较少,新功能都有这个问题
  • 相关人才比较难找,这也是新功能的问题之一

猜你喜欢

转载自ppxieppp.iteye.com/blog/1703785