mysql优化
一,慢查询
1.1什么是慢查询:一个日志,记录着一个sql语句。如何定义慢查询,有一个阈值(long_query_time).
1.2如何在日志中定位慢查询语句:使用mysql自带工具
执行命令找出最慢的几条sql
下面为慢查询的sql语句
二,分析sql语句
2.1分析每个表的数据量
2.2常见优化方式
2.3用关联查询代替子查询:性能提升了一倍多
2.4反范式优化
数据库范式:字段具有原子性、每行数据具有唯一性、字段不冗余
2.5范式化设计的目的:减少冗余,对新增、删除、修改有利,对查询有害。
2.4索引分类
2.6主键索引是默认加的,主键索引和唯一索引的区别是唯一索引可以为空。
2.7.聚集索引:就是保存了索引和数据,索引需要在条件中才能被启用。
2.8查看执行计划:key不为空说明使用了索引
2.9使用key_len算法来评价索引是否被充分使用到
2.10虽然创建了联合索引,但是其他的三个索引都没有用到。这时可以范围条件放到最后,也就是把范围条件索引放到最后。
三,索引使用策略
3.1尽量全值匹配
3.2最佳左前缀法则
组合索引时是按照最左前缀的方式查询的,也就是只有带上组合索引中最左边的索引列才会走索引。单独索引不会有这种问题,
3.3不在索引列上操作
3.4范围条件放最后
3.5覆盖索引尽量用
查询的字段都是索引列
3.6不等于要慎用
3.7NOT/NULL
3.8当心like
3.9字符类型加引号
3.10 OR用UNION代替
相关推荐
aydh 2020-11-12
emmm00 2020-11-17
王艺强 2020-11-17
世樹 2020-11-11
zry 2020-11-11
URML 2020-11-11
spurity 2020-11-10
yifangs 2020-10-13
Andrea0 2020-09-18
Ida 2020-09-16
ltd00 2020-09-12
tufeiax 2020-09-03
xjd0 2020-09-10
greatboylc 2020-09-10
adsadadaddadasda 2020-09-08
疯狂老司机 2020-09-08
CoderToy 2020-11-16
ribavnu 2020-11-16
bianruifeng 2020-11-16