SQL执行顺序,优化的禁止项,建议项
SQL执行顺序,优化的禁止项建议项
SQL执行顺序如下:
1 .FROM,(-including JOIN )
2. WHERE
3. GROUP BY
4. HAVING
5. WINDOW functions
6. SELECT
7. DISTINCT
8. UNION
9. ORDER BY
10. LIMIT and OFFSET
·语句性能应注意两个方面:
1)数据流的流向;
2)order by limit场景。
从执行顺序上看,在SELECT之前的所有子语都是在做数据筛选,SELECT以后开始执行运算,用户应注意数据流的流
向。order by limit一般是在最后运行,如果在一开始运行,有时候会造成返回数据量过大,进而导致执行时间过长。
SQL的语句编写包含一些禁止项与建议项语句,用户深入了解与熟练掌握这些内容能够更好地开展业务。
1.禁止项
1)select *,返回无用数据,过多IO消耗,以及Schema 变更问题;
2)Insert语句指定具体字段名称,不要写成insert into t1 values(…),道理同上;
3)禁止不带WHERE,导致全表扫描以及误操作;
4)Where条件里等号左右字段类型必须一致,否则可能 会产生隐式转换,无法利用索引;
5)索引列不要使用函数或表达式,否则无法利用索引。
如where length(name)=‘Admin’或where user_id+2=5;
6)Replace into,会导致主备不一致;
7)业务语句中带有DDL操作,特别是Truncate。
2.建议项
1)减小三表以上Join;
2)用Union all 替代Union;
3)使用Join 替代子查询;
4)不要使用 like ‘%abc%’,可以使用 like ‘abc%’;
5)Order by /distinct /group by 都可以利用索引有序性;
6)减少使用event/存储过程,通过业务逻辑实现;
7)减小where in() 条件数据量;
8)减少过于复杂的查询和拼串写法。
禁止Null值
定义 id int primary key
统一字符集,建议UTF8mb4
统一排序规则
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2012-10-18 IOS NSString 操作