Posted by:
努力记

努力记,通过记录,计划,让自己的努力可以触碰彩虹!

3,718

数据库:Mongodb

  • 2013-05-04
  • 暂无评论

在目前的存储服务上,Mongodb可以说是最接近关系型数据的非关系型数据库

因为它提供了大多数的SQL操作,在使用及建模上的思想转化不会像其他产品那样需要彻底的改变,但如果思考不当,反而会得不到NoSQL的性能提升,所以还是需要好好分析该产品的建模思想。

  • 首先Mongodb有完整的分布式构架
  • 用内置的sharding功能可以实现数据库的水平扩容
  • 分片集群上还可以设定主从及仲裁数据节点,用来提高负载性能,满足高并发的访问需求

Mongodb

以上操作可以在程序编写上完全透明,在程序开发时可以不用考虑该扩展性,等到业务需求后可以随时扩展(只要有机器就行)

  • Mongodb是文档型数据库
  • 每条数据都是一篇文档,结构无需定义,字段无需定义
  • 只有一个文档ID,该ID是Mongodb自动生成的
  • 该结构可以避免很多关系型数据库上有限数据的连表问题
  • 所有数据加载在一篇文档上,以类似JSON的BSON数据格式的数组结构进行无限级的字段定制

优化:

  • Mongodb的优化设置只有索引的建立,不像Mysql要设置很多的配置根据服务器及所需的要求
  • Mongodb设计的原理是充分利用服务器性能,适合单服务的服务器环境,这也符合分布式系统的环境

索引:索引的建立原理和关系型数据库基本一致,但不用思考索引类型,这点Mongodb会自动根据字段类型进行处理

Mongodb的设计思想是把更多的功能放置在客户端的API中进行处理,所以不是所有的API功能都是一致的

该设计也更加解耦了服务器功能的设计,提高了服务器的负载能力,无论在服务器环境的配置还是程序开发的扩展及修改,都几乎不用去操作服务器端

因为没有字段,所以不用做字段修改的操作,因为没有复杂的性能配置,所以不用按需修改服务器的配置环境

Mongodb为了性能实现了最终一致性,所以会有部分数据是不存在在硬盘上,并且各个服务器的数据有可能不相同

单机环境下,为了实现最终一致性,提供了journal配置,在操作数据时记录操作,以保证单机故障的数据恢复



back up ↑

无觅相关文章插件,快速提升流量