提问
发动态
登录
没有新消息
更多内容
首页
问题
回答
SQL怎么优化执行效率更高
职Q小助手
官方认证职Q平台账号
1. SQL优化的原则是:将一次操作需要读取的BLOCK数减到最低,即在最短的时间达到最大的数据吞吐量。 调整不良SQL通常可以从以下几点切入: 1) 检查不良的SQL,考虑其写法是否还有可优化内容 2) 检查子查询 考虑SQL子查询是否可以用简单连接的方式进行重新书写 3) 检查优化索引的使用 4) 考虑数据库的优化器 2. 避免出现SELECT * FROM table 语句,要明确查出的字段。 3. 在一个SQL语句中,如果一个where条件过滤的数据库记录越多,定位越准确,则该where条件越应该前移。 4. 查询时尽可能使用索引覆盖。即对SELECT的字段建立复合索引,这样查询时只进行索引扫描,不读取数据块。 5. 在判断有无符合条件的记录时建议不要用SELECT COUNT (*)和select top 1 语句。 6. 使用内层限定原则,在拼写SQL语句时,将查询条件分解、分类,并尽量在SQL语句的最里层进行限定,以减少数据的处理量。 7. 应绝对避免在order by子句中使用表达式。 9. 小心使用 IN 和 OR,需要注意In集合中的数据量。建议集合中的数据不超过200个。 10. <> 用 < 、 > 代替,>用>=代替, < 用< =代替,这样可以有效的利用索引。 11. 在查询时尽量减少对多余数据的读取包括多余的列与多余的行。 12. 对于复合索引要注意,例如在建立复合索引时列的顺序是F1,F2,F3,则在where或order by子句中这些字段出现的顺序要与建立索引时的字段顺序一致,且必须包含第一列。只能是F1或F1,F2或F1,F2,F3。否则不会用到该索引。
0
赞+1
0
评论
0
条评论
暂无评论,快来写下您的评论
问题来自于
匿名用户
SQL怎么优化执行效率更高
22552
阅读
1
回答
我要回答
邀请回答
推荐阅读
MyBatis是如何将sql执行结果封装为目标对象并返回的
1回答
2.2w阅读
#SQA#质量保证计划该如何开展效率更高?
0回答
937阅读
#mybatis#mybatis你只写了接口为啥就能执行sql啊?
1回答
5002阅读
#人力资源#怎么面试效率更高
1回答
1623阅读
#美菜网#说实话,拿这么多资本运作这个事,效率太慢。或许是前端体系(产品品质和配送效率)跟不上吧,一直在优化吧。
1回答
4521阅读
#郑州大学#毕业两年了,想转行做老师,怎样效率更高
2回答
3729阅读
为何要做简历优化?凸显个人优势,提升就业效率!
4回答
4639阅读
团队中,执行力优先,但有质量,效率的执行更重要,所以两者都重要
0回答
1867阅读
这样备考教师效率更高!
4回答
2976阅读
正在发声
热门搜索
🔥职QStar养成计划
职Q每日打卡
🔥做得一手好菜
职场相亲角
找工作找工作
披荆斩棘的老哥
乘风破浪的小姐姐
当代斜杠青年的自我修养
我的微笑☺
今天你做了哪些努力
锦鲤许愿池
一张图证明你的颜值
甜甜的恋爱
SQL怎么优化执行效率更高
1. SQL优化的原则是:将一次操作需要读取的BLOCK数减到最低,即在最短的时间达到最大的数据吞吐量。 调整不良SQL通常可以从以下几点切入: 1) 检查不良的SQL,考虑其写法是否还有可优化内容 2) 检查子查询 考虑SQL子查询是否可以用简单连接的方式进行重新书写 3) 检查优化索引的使用 4) 考虑数据库的优化器 2. 避免出现SELECT * FROM table 语句,要明确查出的字段。 3. 在一个SQL语句中,如果一个where条件过滤的数据库记录越多,定位越准确,则该where条件越应该前移。 4. 查询时尽可能使用索引覆盖。即对SELECT的字段建立复合索引,这样查询时只进行索引扫描,不读取数据块。 5. 在判断有无符合条件的记录时建议不要用SELECT COUNT (*)和select top 1 语句。 6. 使用内层限定原则,在拼写SQL语句时,将查询条件分解、分类,并尽量在SQL语句的最里层进行限定,以减少数据的处理量。 7. 应绝对避免在order by子句中使用表达式。 9. 小心使用 IN 和 OR,需要注意In集合中的数据量。建议集合中的数据不超过200个。 10. <> 用 < 、 > 代替,>用>=代替, < 用< =代替,这样可以有效的利用索引。 11. 在查询时尽量减少对多余数据的读取包括多余的列与多余的行。 12. 对于复合索引要注意,例如在建立复合索引时列的顺序是F1,F2,F3,则在where或order by子句中这些字段出现的顺序要与建立索引时的字段顺序一致,且必须包含第一列。只能是F1或F1,F2或F1,F2,F3。否则不会用到该索引。