美文网首页
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