数据库优化之SQL语句优化
数据库优化之SQL语句优化
数据库优化涉及到的方方面面有很多,本文只针对SQL语句的优化跟大家做一个简单的探讨。
大家都知道,访问数据表主要有两种方式:一是全表扫描;二是通过数据索引扫描。索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。因此,在进行SQL语句优化前,我们有必要对数据表建好必要的索引,而要建立恰到好处的索引,需要遵循如下原则:
ü 最频繁使用的、用以缩小查询范围的字段。如在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。
ü 最频繁使用的、需要排序的字段。如在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。
ü 在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就无必要建立索引。如果建立索引不但不会提高查询效率,反而会严重降低更新速度。
ü 如果待排序的列有多个,可以在这些列上建立复合索引(compound index)。
那么,在实际开发过程中,我们应该怎样去编写SQL语句,尽量避免全表扫描以提高查询速度呢?下面给出我在实践中遇到的以及在某些资料上学习到的一些经验:
1. 应尽量避免使用“select * ”进行查询,字段提取要按照“需多少、提多少”的原则。原因是:数据库在解析的过程中,会将 '*' 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间。
2. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描。如:
select id from t where num is null.
解决方法: 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0.
3. Like语句是否会引起全表扫描取决于通配符的类型,如:name like %张 或 name like %张% ,会引起全表扫描,而name like 张% 不会。原因是:通配符%在字符串的开头使得索引无法使用。
4. 应尽量避免非操作符及函数引起的全表扫描,如:not、!=、<>、!<、!>、not exists、not in、not like等,另外还有函数,如:
substr(num,1,4)= 5400
优化处理:
num like 5400% .
5. 应尽量避免在 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.
6. 用“>=”替代“>”,如:
select name from t where id>3.
优化处理:
select name from t where id >=4.
数据库优化之sql语句优化 好学网 vhaoxue_IT/计算机_专业资料。数据库优化之sql语句优化 好学网 vhaoxue.com网站打破了有此站以来就长的因错误而无法访问的记录,错...
数据库优化之SQL语句性能调整原则数据库优化之SQL语句性能调整原则隐藏>> 数据库优化之SQL语句性能调整原则 一、问题的提出 在应用系统开发初期,由于开发数据库数据比...
SQL Server 数据库性能优化之 SQL 语句篇 (转自重名鸟 bolg Java) 近期项目需要,做了一段时间的 SQL Server 性能优化,遇到了一些问题,也积累了一些经验, 现...
ORACLE 数据库 SQL 语句编写优化总结 ORACLE...3 1、选用适合的ORACLE优化器......
关键词:人工智能;自动优化;SQL 语句优化 一个数据库系统的生命周期可以分成:设计、开发和成品三个阶段。在设计阶段进行数 据库性能优化的成本最低,收益最大。在...
由于用户对数据库的要求越来越高,因此必须对数据库进行优化。系统优化的一个很重要的方面就是SQL语句本身的优化,文章从应用的角度论述了SQL语句优化的一些方法。...
数据库性能优化之SQL语句优化 隐藏>> 数据库性能优化乊 SQL 诧句优化一、问题的提出 在应用系统开发初期,由亍开发数据库数据比较少,对亍查询 SQL 诧句,复杂 视...
基于分布式数据库的SQL语句性能优化_IT/计算机_专业资料。分布式数据库程序春秋 电脑知识与技术 基于分布式数据库的 !"# 语句性能优化李凤云 王守强 山东交通学院信息...
E、 尽量不要指定锁类型和索引,SQL SERVER 允许我们自己指定语句使用的锁类型和索 引,但是一般情况下,SQL SERVER 优化器选择的锁类型和索引是在当前数据量和查询...
如何优化sql语句_IT/计算机_专业资料。1. 首先要搞明白什么叫执行计划?执行计划是数据库根据 SQL 语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化...
热门文档