sql优化常用的几种方法你知道多少?
要想了解sql优化常用的几种方法首先要先了解SQL是什么,那么我们就先从SQL是什么慢慢说起吧。一起接着往下看
1、SQL是什么的缩写
SQL是Structured Quevy Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。
2、SQL是什么
SQL(Structured Query Language)是具有数据操纵和数据定义等多种功能的数据库语言,这种语言具有交互性特点,能为用户提供极大的便利,数据库管理系统应充分利用SQL语言提高计算机应用系统的工作质量与效率。SQL语言不仅能独立应用于终端,还可以作为子语言为其他程序设计提供有效助力,该程序应用中,SQL可与其他程序语言一起优化程序功能,进而为用户提供更多更全面的信息
3、SQL优化常用的几种方法
A.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引。
B.应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num is null
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:
select id from t where num=0
C.应尽量避免在where子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
D.应尽量避免在where子句中使用or来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num=10 or num=20
可以这样查询:
select id from t where num=10
union all
select id from t where num=20
E.in和not in也要慎用,否则会导致全表扫描,如:
select id from t where num in(1,2,3)
对于连续的数值,能用between就不要用in了:
select id from t where num between 1 and 3
F.下面的查询也将导致全表扫描:select id from t where name like'%abc%'
G.应尽量避免在where子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如:
select id from t where num/2=100
应改为:
select id from t where num=100*2
H.应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。如:
select id from t where substring(name,1,3)='abc'--name以abc开头的id
应改为:select id from t where name like'abc%'
I.不要在where子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。
J.在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,
否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。
K.不要写一些没有意义的查询,如需要生成一个空表结构:
select col1,col2 into#t from t where 1=0
这类代码不会返回任何结果集,但是会消耗系统资源的,应改成这样:create table#t(...)
sql优化常用的几种方法最后总结
我们开发项目上线初期,由于业务数据量相对较少,一些SQL的执行效率对程序运行效率的影响不太明显,而开发和运维人员也无法判断SQL对程序的运行效率有多大,故很少针对SQL进行专门的优化,而随着时间的积累,业务数据量的增多,SQL的执行效率对程序的运行效率的影响逐渐增大,此时对SQL的优化就很有必要。
以上就是苹果CMSv10精简大气全屏模板为大家搜集整理的关于:sql优化常用的几种方法你知道多少?问题的解释和问题的回答,希望对你当前遇到的问题能够提供和得到一些帮助!更多请关注:我的主题网帮助文档
免责声明:1.凡本站注明“来源:XXX(非我的主题网)”的作品,均转载自其它媒体,所载的文章、图片、音频视频文件等资料的版权归版权所有人所有,如有侵权,请联系admin#mytheme.cn处理;2.凡本站转载内容仅代表作者本人观点,与我的主题网无关。