问题大纲
版本迭代历史:
V1.0:2021.01.03
V2.0:2021.09.21
一、MySQL优化角度
1、MySQL优化角度有哪些?
二、SQL优化
1、SQL查询优化的步骤?(*3)
1、show status查看数据库运行状况(连接、CURD执行等)。
2、慢查询日志+show processlist定位慢SQL。
3、用explain/desc分析慢SQL并解决。
2、SQL优化。
详细可移步【数据库】SQL语句优化技巧,主要从索引、表分析、排序等方面入手。
三、表结构优化
1、表结构优化
1、合适数据类型;
- 选择较小的数据类型解决问题;
- 选择简单的数据类型;
- 尽可能使用not null定义字段;
- 尽量避免使用text类型,非用不可时时最好考虑分表。
2、表范式优化
遵循三大范式。
2、水平拆分 VS 垂直拆分
1、水平拆分 (ID合整)
特点:维度属性差异大、业务关联度低。
2、垂直拆分 (ID不变)
特点:稳定性、产出时间、热度。
主维表:更稳定、产出时间早、热度高;实效性高。
从维表:变化较快、产出时间晚、热度低。
四、系统配置优化
1、操作系统配置:增加TCP支持队列;
2、MySQL配置文件优化:Innodb缓存设置及缓存池个数。
五、硬件优化
1、硬件优化:CPU+内存+磁盘