美文网首页
MySQL解析器顺序

MySQL解析器顺序

作者: ES_KYW | 来源:发表于2020-08-17 11:24 被阅读0次

解析顺序
1.from<table>
2.where<where_condition>
3.group by (group_by_list)
4.having (having_condition)
5.select<select_list>
6.order_by <order_by_condition>

mysql优化
1、查询尽量用确定的列,不要用*查找;
2、尽量少嵌套查询,这种查询会消耗大量的CPU资源;
3、避免使用耗费资源的操作
DISTINCT、UNION、UNION ALL、ORDER BY、MINUS、INTERSECT交集
4、对于比较多的OR查询,建议用多个查询用union all联结起来
5、合理使用索引,使用EXPLAIN去分析SQL语句

type
const>eq_ref>ref>range>index>all
index:全索引表扫描,效率低
possible_key
可能用到的索引
key
用到的索引
ref
显示索引哪一列被使用了,如果可能的话是一个常数const
key_len
越短越好
rows
预估为了找到所需的行而要读取的行数

1、范围条件后索引失效 in < > 等范围查询,范围后的索引失效
2、覆盖索引尽量使用
3、不等于要慎用
4、null和not null也会影响到索引,并非完全不能使用索引,索引优化器有时会优化到可以使用索引查询,需要慎用
5、慎用like 以通配符左侧开头索引失效,如%123
6、or改为union高效,or会全索引表扫描
7、exists替换in

相关文章

网友评论

      本文标题:MySQL解析器顺序

      本文链接:https://www.haomeiwen.com/subject/twbrdktx.html