MongoDB学习笔记(七、MongoDB总结)

1、为什么要NoSQL:nosql能解决sql中那些解决不了的问题

NoSQL是什么:Not Only SQL,本质上还是数据库,但它不会遵循传统数据库的规则(如:SQL标准、ACID属性[事务]、表结构等)。

优点:

  • 处理大量数据时性能高。
  • 对磁盘读写要求不高,可以运行在便宜的PC机上,降低服务器成本。

缺点:

  • 对事务的支持不够友好
  • 复杂的关联查询难以实现
传统SQL与NoSQL的比较
传统SQL

1、吞吐量小,无法支持高并发读写

2、结构要求严谨(增改一个字段麻烦),复杂系统中难以维护此关系

NoSQL

1、吞吐量大,支持海量数据的快速读写(基于内存操作数据)

2、增改字段非常容易

扫描二维码关注公众号,回复: 8129576 查看本文章

2、MongoDB简介

MongoDB是NoSQL的一种,它是一个文档型数据库

MongoDB与MySQL比较
MySQL MongoDB
db database(数据库)
table collection(集合)
row document(文档)
column field(字段)
index  index(索引)
join 无关联(可以用DBRef实现)
primaryKey primaryKey(主键,客户端默认使用_id,ObjectId)

 

特性:

  • 数据存储方式:面向集合文档存储数据,以独有的bson格式存储
  • 可扩展性:可扩展性好,修改数据后不会影响生产环境的程序运行
  • 语言特性:强大且面向对象的查询语言,基本覆盖了sql语言所有能力
  • 索引和查询计划:完整的索引支持和查询计划
  • 集群、分片、内部故障支持:支持集群之间的数据复制、自动故障转移、支持数据的分片,提升系统扩展性
  • 数据操作方式:使用内存映射存储引擎,把IO操作转换成内存操作(不是只用内存,而是通过内存提高读写性能)

 3、MongoDB应用场景

只要满足以上两点,选择MongoDB就绝对不会错!!!

但系统需要高一致的事务性,不推荐使用(如:银行、财务系统)。

系统结构固定且有复杂的关联查询系统,不推荐使用。

猜你喜欢

转载自www.cnblogs.com/bzfsdr/p/12013700.html