mySQL之关键字的执行优先级讲解

2022-05-22 0 1,039

如下所示:

from 表

where 条件

group by 字段

形成虚拟的表及字段,聚合及字段添加

having 筛选数据

distinct 去重

order by 字段 asc,desc

limit 限制条数

select 罗列记录

先根据where 约束条件 将数据从表中加载到内存,所以where的条件作用在数据之前,然后根据字段进行分组,在内存中形成一张虚拟的表包含字段,

如果此时有聚合函数则先执行聚合函数,并将聚合函数字段也加到虚拟的表中,接着进行having记录筛选,筛选完成后对数据进行去重,排序,限制等操作后进行显示。

补充知识:mysql where条件and的执行顺序从左到右

之前做功能,把三个条件通过md5加密之后得到一个字符串的字段unique_key,把这个字段设置为唯一索引,希望查询的时候通过这个唯一索引来查询,不用分三个条件分别进行查询了,同时使用了replace方法保证相同的三个条件下更新数据的话数据库只会有一条记录。

后来发现列表查询必须要开放这三个条件,于是只好将这个unique_key放到where条件and 的最左边,通过unique_key筛选出来效率也不会差。

mysql的优化方方面面,写的时候要多考虑了。

以上这篇mySQL之关键字的执行优先级讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持NICE源码。

免责声明:
1、本网站所有发布的源码、软件和资料均为收集各大资源网站整理而来;仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

2、本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与www.niceym.com无关。
如果您喜欢该程序,请支持正版源码、软件,购买注册,得到更好的正版服务。
如有侵犯你版权的,请邮件与我们联系处理(邮箱:skknet@qq.com),本站将立即改正。

NICE源码网 MySql mySQL之关键字的执行优先级讲解 https://www.niceym.com/45731.html