慢查询基础:
查询不需要的记录;多表关联时返回全部列;总是取出全部列;重复查询相同的数据。
1:是否向数据库请求了不需要的数据
2:MYSQL是否在扫码额外的记录
SQL查询优化:
1:索引
2:where限制或筛选条件
3:改变库表结构
4:一个复杂查询拆分为几个简单查询
5:切分查询,例如:设置limit
6:查询本身函数的使用,例如:用in()代替关联查询
7:使用哈希关联等
8:使用主键或者唯一标识符查询
SQL优化思路:减少对全表扫描;减少锁的竞争;让缓存的效率更高;减少冗余记录的查询;
MySQL能处理的优化类型:
1:重新定义关联表的顺序
2:将外连接转化为内连接
3:使用等价变换规则,例如:简化并规范表达式,去掉没必要的括号等
4:优化count(),min(),max()
5:预估并转化为常数表达式
6:覆盖索引扫描
7:子查询优化
8:提前终止查询
9:等值传播
10:列表IN()的比较