Mongodb介绍(非原创)
文章大纲
一、什么是nosql
二、mongodb与mysql比较
三、参考文章
一、什么是nosql
1. 简介
这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。key/value模型对于it系统来说的优势在于简单、易部署。但是如果dba只对部分值进行查询或更新的时候,key/value就显得效率低下了
2. nosql数据库的四大分类
键值存储数据库
这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。key/value模型对于it系统来说的优势在于简单、易部署。但是如果dba只对部分值进行查询或更新的时候,key/value就显得效率低下了。举例如:tokyo cabinet/tyrant, redis, voldemort, oracle bdb.
列存储数据库
这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:cassandra, hbase, riak.
文档型数据库
文档型数据库的灵感是来自于lotus notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如json。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:couchdb, mongodb. 国内也有文档型数据库sequoiadb,已经开源。
图形(graph)数据库
图形结构的数据库同其他行列以及刚性结构的sql数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。nosql数据库没有标准的查询语言(sql),因此进行数据库查询需要制定数据模型。许多nosql数据库都有rest式的数据接口或者查询api。如:neo4j, infogrid, infinite graph.
因此,我们总结nosql数据库在以下的这几种情况下比较适用:1、数据模型比较简单;2、需要灵活性更强的it系统;3、对数据库性能要求较高;4、不需要高度的数据一致性;5、对于给定key,比较容易映射复杂值的环境。
3. 适用场景
(1)数据模型比较简单;
(2)需要灵活性更强的it系统;
(3)对数据库性能要求较高;
(4)不需要高度的数据一致性;
(5)对于给定key,比较容易映射复杂值的环境
4. nosql具体产品种类
(1)redis
(2)mongodb
(3)hbase等
二、mongodb与mysql比较
1. mysql
关系型数据库。
在不同的引擎上有不同 的存储方式。
查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。
开源数据库的份额在不断增加,mysql的份额页在持续增长。
缺点就是在海量数据处理的时候效率会显著变慢。
2. mongodb
非关系型数据库(nosql ),属于文档型数据库。先解释一下文档的数据库,即可以存放xml、json、bson类型系那个的数据。这些数据具备自述性(self-describing),呈现分层的树状数据结构。数据结构由键值(key=>value)对组成。
存储方式:虚拟内存+持久化。
查询语句:是独特的mongodb的查询方式。
适合场景:事件的记录,内容管理或者博客平台等等。
架构特点:可以通过副本集,以及分片来实现高可用。
数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写。
成熟度与广泛度:新兴数据库,成熟度较低,nosql数据库中最为接近关系型数据库,比较完善的db之一,适用人群不断在增长。
优势:
快速!在适量级的内存的mongodb的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快,
高扩展!
自身的failover机制!
json的存储格式!
缺点:主要是无事物机制!