数据库分类
| 数据库类型 | 产品 | 特性 |
|---|---|---|
| sql | MySQL,oracle,sybase | 实时一致性,事务,多表联合查询 |
| nosql | mongodb,redis,influxdb,hbase | 简单便捷,扩展方便,更好的性能 |
Nosql数据库分类
| 数据模型 | 特点 | 代表 |
|---|---|---|
| 键值 | Redis、Memcache | 键值对,常用作缓存,可处理大数据量的高访问负载 |
| 文档 | MongoDB、CouchDB | 存储类似JSON格式的内容,可对某些字段建立索引功能,是最像关系型的数据库 |
| 列式 | BigTable、HBase | 按列存储,针对某一列或者某几列的查询有非常大的IO优势 |
| 图形 | GraphSQL、Neo4j | 善于处理大量复杂、互连接、低结构化的数据,数据往往变化迅速,且查询频繁 |
Nosql 简介
NoSQL(NoSQL = Not Only SQL ),意即”不仅仅是SQL”。
1.易扩展
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。
2.大数据量,高性能
NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了。
3.灵活的数据模型
NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的web2.0时代尤其明显。
Mongo简介
1.文档存储结构,能存储各种集合,非常适合做web程序的主存储,能替代缓存数据库,如memcache,但性能不如redis。
2.分布式部署,多副本存储保证数据安全,分片技术扩展。
3.完全的索引支持,key-value、单键索引、多键索引、数组索引、全文索引等,这是其他nosql所没有的。
4.完善的文档,官方支持强大,开源。 业界有成功的案例
Mongo使用场景
1.数据缓存
2.JSON格式的数据
3.高伸缩性场景
4.弱事务类型业务
MongoDB更多适合于大数据量、高并发、弱事务的互联网应用,其内置的水平扩展机制提供了从几百万到十亿级别的数据处理能力,可以很好的满足Web2.0和移动互联网应用的数据存储要求。
mongodb术语
| MongoDb | 关系型数据库 |
|---|---|
| DataBase | DataBase |
| Collection | Table |
| Document | Record/Row |
| field | Column |
| Index | Index |
| embedded documents/reference | table joins |
1.MongoDB 文档 一种类 JSON 的 BSON 格式的数据
- MongoDB中写操作的原子性限制在文档级别,对文档的保存、修改、删除等都是原子操作
- 单个文档占用的存储空间不能超过 16 MB
- _id 是系统保留的关键字,它是默认的主键,该值在集合中必须唯一,且不可更改
- 键是区分大小写的,且不能重复。例如:{ foo : 1, Fool : 1 }
2.MongoDB集合 MongoDB 的集合是模式自由的,一个集合里面的文档可以是各式各样。
3.MongoDB数据库 多个文档组成集合,而多个集合组成了数据库。一个MongoDB实例可以承载多个数据库,每个数据库都有独立的权限,在磁盘上,不同的数据库也可放置在不同的文件夹中。

本文介绍了NoSQL数据库的特点及应用场景,重点对比了NoSQL与关系型数据库的区别,并详细阐述了MongoDB作为文档型NoSQL数据库的优势,包括其数据模型、索引支持及分布式部署等方面。
2112

被折叠的 条评论
为什么被折叠?



