sql查询优化说明
当你提交一个查询的时候,MySQL会分析它,看是否可以做一些优化使处理该查询的速度更快。这一部分将介绍查询优化器是如何工作的。如果你想知道MySQL采用的优化手段,可以查看MySQL参考手册。
当然,MySQL查询优化器也利用了索引,但是它也使用了其它一些信息。例如,如果你提交如下所示的查询,那么无论数据表有多大,MySQL执行它的速度都会非常快:
SELECT * FROM tbl_name WHERE 0;
在这个例子中,MySQL查看WHERE子句,认识到没有符合查询条件的数据行,因此根本就不考虑搜索数据表。你可以通过提供一个EXPLAIN语句看到这种情况,这个语句让MySQL显示自己执行的但实际上没有真正地执行的SELECT查询的一些信息。如果要使用EXPLAIN,只需要在EXPLAIN单词放在SELECT语句的前面:
mysql> EXPLAIN SELECT * FROM tbl_name WHERE 0\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: NULL
type: NULL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: NULL
Extra: Impossible WHERE
通常情况下,EXPLAIN返回的信息比上面的信息要多一些,还包括用于扫描数据表的索引、使用的联结类型、每张数据表中估计需要检查的数据行数量等非空(NULL)信息。
优化器是如何工作的
MySQL查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行。你的最终目标是提交SELECT语句查找数据行,而不是排除数据行。优化器试图排除数据行的原因在于它排除数据行的速度越快,那么找到与条件匹配的数据行也就越快。如果能够首先进行最严格的测试,查询就可以执行地更快。假设你的查询检验了两个数据列,每个列上都有索引:
SELECT col3 FROM mytable
WHERE col1 = ’some value’ AND col2 = ’some other value’;
假设col1上的测试匹配了900个数据行,col2上的测试匹配了300个数据行,而同时进行的测试只得到了30个数据行。先测试Col1会有900个数据行,需要检查它们找到其中的30个与col2中的值匹配记录,其中就有870次是失败了。先测试col2会有300个数据行,需要检查它们找到其中的30个与col1中的值匹配的记录,只有270次是失败的,因此需要的计算和磁盘I/O更少。其结果是,优化器会先测试col2,因为这样做开销更小。
//www.cqvip.com 数据库数据仓库数据挖掘 S evrQLSre 的查 询优化 方法 的设计 和 实现 Deinadraiaino eyOptiaini sg n elt fzoQur izt nSQLSre mo evr...
Page 7 of 12 SQL Server 2005 SQL 查询优化 任务 3. 检查捕获到的死锁信 息 详细步骤 1. 在 SQL Server Profiler 中,返回到你运行的跟踪中,单击停止所选...
sql 优化、索引的建立和运用以及多表连接建索引一、问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询 SQL 语句,复 杂视图的编写等体会不出 SQL...
ORACLE中SQL查询优化技术_专业资料。数据库性能问题一直是决策者及技术人员共同关注的焦点,影响数据库性能的一个重要因素就是SQL查询语句的低效率。论文首先分析了导致...
SQl 语句查询性能优化 【摘要】本文从 DBMS 的查询优化器对 SQL 查询语句进行性能优化的角度出发,结合数据库理论, 从查询表达式及其多种查询条件组合对数据库查询...
SQL中查询语句的优化方法_计算机软件及应用_IT/计算机_专业资料。维普资讯 http://www.cqvip.com 第2 0卷 第 5期 重 庆 工 学院 学报 Jun fhnqn ntueoehoo...
关系数据库 SQL 查询语句优化应用 摘要:针对目前关系数据库查询中 sql 查询语句存在的问题,本 文进行了详细的分析,并提出数据库 sql 查询语句的优化方案。 关键字...
浅谈SQL Server数据库查询性能的优化_专业资料。随着数据库应用系统中数据量的急剧增大,对数据库系统性能的优化显得极为重要。本文讨论了影响基于SQL Server应用系统性...
论文基于 SQL 语言 和对数据各种操作分析的基础上,探讨了数据库 SQL 查询处理的内容和过程,详细的研究了基于 SQL 查 询优化的一些策略,其中主要包括索引查询、SQL...
sqlserver查询优化_计算机软件及应用_IT/计算机_专业资料。SQL Server查询优化 目前和来日的想法 查询的几种形式 1. ad hoc :select * from table1 where name...
闽公网安备 35021102001881号 
热门文档