常用的7个SQl优化技巧

作者: 小明yz | 来源:发表于2017-06-16 22:21 被阅读125次

作为程序员经常和数据库打交道的时候还是非常频繁的,掌握住一些Sql的优化技巧还是非常有必要的。下面列出一些常用的SQl优化技巧,感兴趣的朋友可以了解一下。

1、注意通配符中Like的使用

以下写法会造成全表的扫描,例如:

select id,name from userinfo where name like '%name%'

或者

select id,name from userinfo where name like '%name'

下面的写法执行效率快很多,因为它使用了索引

select id,name from userinfo where name like 'name%'

2、避免在where子句中对字段进行函数操作

比如:

select id from userinfo where substring(name,1,6) = 'xiaomi'

或者

select id from userinfo where datediff(day,datefield,'2017-05-17') >= 0

上面两句都对字段进行了函数处理,会导致查询分析器放弃了索引的使用。

正确的写法:

select id from userinfo where name like'xiaomi%'

select id from userinfo where datefield <= '2017-05-17'

通俗理解就是where子句‘=’ 左边不要出现函数、算数运算或者其他表达式运算

3、在子查询当中,尽量用exists代替in

select name from userinfo a where id in(select id from userinfo b)

可以改为

select name from userinfo a where exists(select 1 from userinfo b where id = a.id)

下面的查询速度比in查询的要快很多。

4、where子句中尽量不要使用is null 或 is not null对字段进行判断

例如:

select id from userinfo where name is null

尽量在数据库字段中不出现null,如果查询的时候条件为 is null ,索引将不会被使用,造成查询效率低,

因此数据库在设计的时候,尽可能将某个字段可能为空的时候设置默认值,那么查询的时候可以

根据默认值进行查询,比如name字段设置为0,查询语句可以修改为

select id from userinfo where name=0

5、避免在where子句使用or作为链接条件

例如:

select id from userinfo where name='xiaoming' or name='xiaowang'

可以改写为:

select id from userinfo where name = 'xiaoming' union all

select id from userinfo where name = 'xiaowang'

6、避免在 where 子句中使用 != 或 <> 操作符。

例如:

select name from userinfo where id <> 0

说明:数据库在查询时,对 != 或 <> 操作符不会使用索引,

而对于 < 、 <= 、 = 、 > 、 >= 、 BETWEEN AND,数据库才会使用索引。

因此对于上面的查询,正确写法可以改为:

select name from userinfo where id < 0 union all

select name from userinfo where id > 0

7、少用in 或 not in

对于连续的数值范围查询尽量使用BETWEEN AND,例如:

select name from userinfo where id BETWEEN  10 AND 70

以上只是相对来说比较常用的sql优化技巧,当然还有很多欢迎补充!

欢迎关注公众号:DoNet技术分享平台

阅读原文

相关文章

  • Mysql 优化

    1.Sql优化 1)sql优化分析2)索引优化3)sql语句优化4)一些常用的技巧优化 (正则、函数) 2.优化数...

  • (103)mysql优化之sql语句优化

    概述 该篇主要介绍一些常用的sql优化技巧 sql优化 1.select * from table_name wh...

  • mysql数据库优化

    1. Mysql优化介绍 1.1 sql优化 a. sql优化分析b. 索引优化c. 常用sql优化d. 常用优化...

  • SQL 常用优化手段总结 - 索引的应用

    系列文章回顾SQL 常用优化手段总结 - 分析 SQL 语句的一般步骤SQL 常用优化手段总结 - 索引的应用SQ...

  • SQL 常用优化手段总结 - 分析 SQL 语句的一般步骤

    系列文章回顾SQL 常用优化手段总结 - 分析 SQL 语句的一般步骤SQL 常用优化手段总结 - 索引的应用SQ...

  • Python-02进阶-07代码优化技巧

    代码优化技巧 优化原则 核心技巧 其他技巧 Python 代码性能优化技巧 常用代码优化技巧 sort()优于so...

  • MySQL优化

    sql 语句优化 常用的sql优化建议: 避免使用 SELECT * 避免在WHERE 后面使用 <> 或者 !...

  • 常用的7个SQl优化技巧

    作为程序员经常和数据库打交道的时候还是非常频繁的,掌握住一些Sql的优化技巧还是非常有必要的。下面列出一些常用的S...

  • SQL 常用优化手段总结 - 小技巧

    中国有句古话叫做:欲速则不达。在一口气学完了分析 SQL 语句的一般步骤与索引的正确运用方式后小憩片刻。搭配上红茶...

  • sql面试题大全

    sql面试题大全 1、[10条SQL优化技巧](http://www.wityx.com/post/250_1_1...

网友评论

    本文标题:常用的7个SQl优化技巧

    本文链接:https://www.haomeiwen.com/subject/mazmqxtx.html