1.NoSQL
noSQL:not only SQL(不仅仅是SQL,也就是不仅仅是操作数据库。也解释为no-relational,非关系型数据库)。
RDBMS:关系型数据库
MySQL、Orical、SQL Server:都是关系型数据库(即RDBMS)。
NoSQL(非关系型数据库)和RDBMS是并列的两种类别。
2.为什么有NoSQL
1.互联网用户量大,访问量大
2.高并发(就是用户同时做一件事,可能会资源竞争)(用户同时买某东西)
3.高可用,数据库宕机了,能很快恢复
4.海量数据(2亿用户,每人每天发10条数据,一天20亿,一个月超多,一年巨多)
(简记:高大海)
传统RDBMS处理不了这些问题
3.NoSQL优势
1.能处理大量数据,同时性能好
2.灵活的数据模型
NoSQL数据库中的表没有联系,都是各自独立的,该了没影响
3.高可用
有自己的高可用解决方法,能在系统出现故障的时候,快速解决故障。
RDBMS和NoSQL有各自的使用场景,二者结合。关系型数据库关注在关系上,NoSQL关注在存储上。
4.成本低
开源免费,NoSQL不挑硬件,都能跑起来
(总结:性能好,便宜)
4.NoSQL劣势
1.无关系
数据之间没有联系
2.不支持标准的SQL,没有公认的NoSQL标准
3.没有关系型数据库的约束(比如控制年龄列的值,是0-100之间),大多数也没有索引的概念。
4.没有事务(没有等同于关系型数据库的事务,不能像关系型数据库那样,做回滚,,,)
不能依靠事务做ACID(原子性、一致性、隔离性、持久性)
5.没有丰富的数据类型
只有文本