mySQL之关键字的执⾏优先级讲解
如下所⽰:
from 表
where 条件
group by 字段
形成虚拟的表及字段,聚合及字段添加
having 筛选数据
distinct 去重
order by 字段 asc,desc
limit 限制条数
select 罗列记录
先根据where 约束条件将数据从表中加载到内存,所以where的条件作⽤在数据之前,然后根据字段进⾏分组,在内存中形成⼀张虚拟的表包含字段,
mysql group by order by如果此时有聚合函数则先执⾏聚合函数,并将聚合函数字段也加到虚拟的表中,接着进⾏having记录筛选,筛选完成后对数据进⾏去重,排序,限制等操作后进⾏显⽰。
补充知识:mysql where条件and的执⾏顺序从左到右
之前做功能,把三个条件通过md5加密之后得到⼀个字符串的字段unique_key,把这个字段设置为唯⼀索引,希望查询的时候通过这个唯⼀索引来查询,不⽤分三个条件分别进⾏查询了,同时使⽤了replace⽅法保证相同的三个条件下更新数据的话数据库只会有⼀条记录。
后来发现列表查询必须要开放这三个条件,于是只好将这个unique_key放到where条件and 的最左边,通过unique_key筛选出来效率也不会差。
mysql的优化⽅⽅⾯⾯,写的时候要多考虑了。
以上这篇mySQL之关键字的执⾏优先级讲解就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论