百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

MySQL踩过的那些坑 mysqld

lipiwang 2024-10-18 09:42 13 浏览 0 评论

一、SQL执行顺序

1. from

2. join

3. on

4. where

5. group by(开始使用select中的别名,后面的语句都可以使用)

6. avg sum(聚合函数)

7. having

8. select

9. distinct

10. order by

11. limit

从这个顺序不难发现,所有的查询语句都是从from开始执行的,在执行过程中,每个步骤都会为下一个步骤生成一个结果集,这个结果集将作为下一个执行步骤的输入。

二、LEFT JOIN中,on和where条件的区别

1. on条件是在生成临时表时使用的条件,它不管on后所带的条件是否为真,都会返回做表中的记录

2. where条件是先生成临时表后,再对临时表进行过滤的条件。这时已经没有LEFT JOIN的含义了,条件不为真就全部过滤掉。

三、INNER JOIN中,on和where条件的区别

使用join时,过滤条件写在on或者where之后,返回的结果是一样的,那么他们的执行效率哪个更高,还是一样的?

四、ORDER BY与LIMIT一起使用的陷阱

MySql在执行limit的时候不会查询到所有的结果集,而是找到符合条件的行后立刻返回。Order by排序的时候,如果排序字段值相同,那么这些相同值所在的记录的顺序是随机的,但对于同一个结果集,其顺序也是固定的。因此当limit与order by一起使用时,如果遇到相同的排序字段值,加上limit的取值不同,会导致排序不稳定,出现在第一页的记录可能会出现在第二页。

五、MySQL函数的使用

1. DATE_FORMAT函数中,时间格式应为标准时间格式,否则返回null

2. CONCAT函数中,如果有一个值是null,则返回null

3. FIND_IN_SET函数中,如果有一个值是null,则返回false

六、UNION和NUION ALL的使用

1. 都是对两个结果集进行并集操作,上下SQL语句中查询的字段要相同

2. UNION对两个结果集进行并集操作,不包括重复行,同时进行默认规则排序,默认规则为查询的第一个字段的升序。

3. UNION ALL对两个结果集进行并集操作,包括重复行,不进行排序

4. 可以在最后一个结果集中指定order by子句改变排序方式

七、SQL编写注意事项

⑴、做连接查询的时候,连接字段的字符集应相同,否则会导致索引失效。

⑵、应尽量避免在where子句中使用!=或<>操作符,否则引擎将放弃使用索引而进行全表扫描。

⑶、对查询进行优化,应尽量避免全表扫描,首先考虑在where及order by涉及的列上建立索引。

⑷、应尽量避免在where子句中字段进行null值判断,否则引擎将放弃使用索引而进行全表扫描。

⑸、OR前后两个条件都要有索引整个SQL才会使用索引,只要有一个条件没索引整个SQL就不适用索引。

⑹、MySQL将IN()列表中的数据先进行排序,然后通过二分查找的方式来确定列表中的值是否满足条件,这是一个O(log n)复杂度的操作,等价地转换成OR查询的复杂度为O(n),对于IN()列表中大量取值的时候,MySQL的处理速度将会更快。

⑺、左模糊查询将导致全表扫描。

⑻、不要在where子句中对字段进行函数、表达式操作,这样将导致全表扫描。

⑼、在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,应尽可能的让字段顺序与索引顺序一致。

⑽、避免隐式类型转换,如字符串应加单引号,否则会导致全部扫描。

⑾、任何地方都不要使用select * from t,用具体的字段列表代替“*”,不要返回用不到的任何字段,这样会导致回表。

⑿、尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理。

⒀、尽量避免大事务操作,提高系统并发能力。

相关推荐

微软Office Open XML中的数字签名漏洞

MicrosoftOffice是最广泛使用的办公文档应用程序之一。对于重要文件,如合同和发票,可以对其内容进行签名,以确保其真实性和完整性。自2019年以来,安全研究人员发现了针对PDF和ODF等其...

Javaweb知识 day12 XML(javaweb中xml作用)

一、XML:1.1概念:ExtensibleMarkupLanguage可扩展标记语言*可扩展:标签都是自定义的。<user><student>1.2功能:...

易筋洗髓功——内外同修方可致远(易筋洗髓功口诀)

达摩祖师所传易筋、洗髓两经,一分为二,二实为一,无非以方便法门接引众生,而归于慈悲清净之心地。修炼《易筋经》是为强身健体,修炼《洗髓经》是为修心养性,此二者相辅相成,内外兼修,缺一不可。这是一套传统中...

《增演易筋洗髓内功图说》17卷(1930年(清)周述官撰 4

《增演易筋洗髓内功图说》17卷(1930年(清)周述官撰 5

道家洗髓功修炼要义,洗髓功如何做到丹田聚气?

不管是道家洗髓功,还是洗髓经,其修炼的关键点就在于得气、行气、聚气...那么,作为洗髓功修炼者,具体该怎么做呢?在实际修炼中,就洗髓功的修炼方法来讲,我们可以简单的归纳为修炼三部曲,其具体表现如下:一...

「清风聊练功」师门传我易筋经:聊聊我的学习经历和正身图感受

一个人的眼界认识,是随着是自身的知识积累和水平不断成长的。开篇为什么要说这么一句呢?是从我的学习经历上感受明显的这句话:一处不到一处迷。我们学传统武术,内功功法,也是从小白到明白一步步走的,走的越远,...

内功外练功介绍(练内功 外功)

这里介绍我练习的两套动功心得体会。是老道长的八部金刚功、长寿功和增演易筋洗髓经。八部金刚功外练奇经八脉,练出健康强壮的好身体还是可以的,长寿功也是内练功法。这部功法很好的预防效果。这个大家都认同的。说...

孔德易筋洗髓大全注解(下)(孔德易筋经教学视频)

...

《增演易筋洗髓内功图说》17卷(1930年(清)周述官撰 1

少林空悟老师珍藏

国术典籍:《增演易筋洗髓内功图说》【2024年8月编校】

《增演易筋洗髓内功图说》系养生气功著作,全书共十八卷。清周述官编撰于光绪二十一年(1895年)。清光绪十九年(1893年),僧人静一空悟将少林功法传授于周述官,并将《增益易筋洗髓内功图说》十二卷(按,...

小说:自媒体小白的修道之路-洗髓(自媒体小白运营技巧)

谁应了谁的劫,谁又变成了谁的执念。当沧海遗忘了桑田,这世间又多了一个不回家的人!异域空间中,知生缓缓起身,目光扫了一下小帝后,又转身看向画板上的那朵白色蒲公英,自言道:“白瑛,这一世我们莫要再辜负了!...

这才是少林洗髓经真相:它是静功和导引术与八段锦暗合

不少朋友误解易筋经和洗髓经,将其简单归为强力呼吸的吐纳功以及为了提升房中的关窍功。事实上易筋经和洗髓经是两部功法:易筋经主要为炼体,包含以膜论为核心的十二月怕打筋膜法,以及辅助的呼吸、导引功法;洗髓经...

孔德易筋洗髓大全注解(上)(孔德易筋经洗髓经视频)

...

洗髓经传承与心得(二)(《洗髓经》)

...

取消回复欢迎 发表评论: