需求:数据加载慢(卡)
其实是SQL的优化
学习路线:
(选择数据库)-》业务分析(表,字段)-》逻辑设计(范式-》关系表,反范式-》宽表)
-》物理设计(选择存储引擎》数据类型》对象命名-》建立库表)
-》索引优化(慢查询-》执行计划)
-》SQL改写
-》事务ACID(由于高并发-》产生阻塞,死锁)
-》高可用,高可扩展(集群,负载均衡,主从复制,读写分离,分库分表(水平分割,垂直分割))
一,数据库:MySQL
二,业务分析:根据项目需求,得出需要创建的表,每个表应该有什么字段
三,逻辑设计:
三大范式:
- 单个字段不能再分。如:联系方式-》拆分-》手机,微信,QQ。。。
- 非主键字段必须依赖主键(有主键才有非主键,人在塔在)
- 非主键之间不能相互依赖(女朋友和小三不兼容)
- 优点:减少数据冗余
- 缺点:增加关联,产生关系表
反范式:根据业务需要,把需要的数据放进表中。
- 优点: