发展背景:
1. 单机Mysql
这个时候网站的访问量不是很大,单个数据库够用,服务器压力不大
瓶颈:
- 数据量太大,一个机器放不下
- 数据的索引,一个机器的内存也放不下
- 访问量(读写混合),一个服务器承受不了
2. 缓存 + Mysql + 垂直拆分(读写分离)
网站 80% 的情况都是在读操作,每次都去查询数据库的话效率很低,因此可以使用缓存来保证效率。
3. 分库分表 + 水平拆分 + Mysql集群
每个集群存储一部分数据
4. 非关系型数据库
目前一个互联网项目
什么是 NoSql???
Not only Sql(不仅仅是sql)
NoSql 的特点:
- 方便扩展,数据之间耦合性低
- 大数据量高性能(redis 每秒写8万次,读11万次,Nosql 的缓存是记录级的,所以性能比较高)
- 数据类型是多样型的且不需要事先设计数据库
- 传统的 RDBMS 和 NoSql
传统的RDBMS:
结构化组织,SQL,数据和关系都存在单独的表中,操作语言,数据定义语言,严格的一致性,基础的事务等等。。。
NoSql:
不仅仅是数据,没有固定的查询语言,键值对存储(列存储,文档存储,图形数据库),最终一致性,CAP 定理和 BASE 理论,高性能,高可用,高可扩等等