01.MySQL优化方向
1.1 优化方向
- 存储引擎的选择:INnoDB MyISAM
- 设计数据库的设计,尽量的遵循三范式
- 适当的建立索引
- 查询数据的时候,注意 … 这些
使用explain检查索引命中率,分析这一条sql语句是否可优化
- 数据量大的时候,主从分离、分库分表、垂直/水平分割
- 尽量采用 贵的,SSD硬盘。不选择机械硬盘
- 一个和你项目有关数据库优化的例子
1.2 MySQL优化
- 什么是MySQL的慢查询?
- 如何去分析 慢查询的日志?
- 遇到了慢查询如何解决?(最好有故事)
- 索引的建立是越多越好?为什么不是越多越好?
一个精彩的故事
02.简单说明
2.1 MySQL索引优化
1 | # 1、最左前缀匹配原则,上面讲到了 |
2.2 MySql分库分表
了解内容,不作为学习重点
- mysql一主多从,读写分离:写主库,读从库(所有数据库的数据一样)
- 数据一样的,那么当数据量太大的时候查询还是很慢
- 分库(根据用户id分库)
- 所有数据库的表结构一样,存储的数据完全不一样
- 真实环境以用户id进行分库,每一个库的数据都很小,查询起来就快了
- 无法解决问题:当一个数据库中表中量过大的时候,查询依然会慢
- 分表(根据时间分表)
- 当一个表中数据过大的时候,我们必须要对表拆分
- 购物清单表中有两千万数据
- 最近半年的购物数据时 一百万
- 半年到一年的数据有五百万
- 一年以前的数据有一千万
__END__