作为一名程序员,他经常处理数据库,所以需要掌握一些Sql优化技巧。以下是一些常见的SQl优化技术,感兴趣的朋友可以了解一下。
1.注意通配符中Like的使用
以下写入将导致扫描整个表格,例如:
从userinfo中选择id、名称,其中名称如“%name%”
或者..
从userinfo中选择id、名称,其中名称如“%name”
下面的编写效率更高,因为它使用了索引
从userinfo中选择id、名称,其中名称如' name% '
2.避免对where子句中的字段执行函数操作
例如:
从userinfo中选择id,其中substring(name,1,6) = 'xiaomi '
或者..
从userinfo中选择id,其中datediff(day,datefield,' 2017-05-17 ')>。= 0
以上两句都对字段进行函数处理,会导致查询分析器放弃使用索引。
正确书写:
从userinfo中选择id,名称如“小米%”
从userinfo中选择id,其中datefield & lt= '2017-05-17'
一般认为,函数、算术运算或其他表达式运算不应出现在where子句“=”的左侧
3.在子查询中,尝试用exists替换in
从用户信息a中选择名称,其中id在(从用户信息b中选择id)
可改为
从userinfo a中选择名称(从userinfo b中选择1,其中id = a.id)
下面的查询速度比查询中快得多。
4.尽量不要用是null还是非null来判断where子句中的字段
例如:
从用户名信息中选择id,其中名称为空
尽量不要在数据库字段中包含null。如果查询条件为空,将不使用索引,导致查询效率低。
因此,在设计数据库时,当某个字段可能为空时,尽量设置默认值,以便查询。
根据默认值进行查询,例如,如果名称字段设置为0,则查询语句可以修改为
从userinfo中选择id,其中name=0
5.避免在where子句中使用或作为链接条件
例如:
从userinfo中选择id,其中name=小明或name=王晓
可以改写为:
从userinfo中选择id,其中name = '小明' union all
从用户信息中选择id,其中name = '王晓'
6.避免在where子句中使用它!=或
例如:
从userinfo中选择名称,其中id & lt>。0
注意:查询数据库时,是!=或
对于
因此,对于上面的查询,正确的写法可以改为:
从userinfo中选择名称,其中id & lt0联合所有
从userinfo中选择名称,其中id >为。0
7.少用或不用
对于连续的数值范围查询,请尝试使用介于和之间,例如:
从用户信息中选择名称,其中id介于10和70之间
以上是比较常见的sql优化技术,当然还有很多值得欢迎的补充!
1.《sql优化 常用的7个SQl优化技巧》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《sql优化 常用的7个SQl优化技巧》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/tiyu/1366685.html