SQL语句查询优化续集

Posted mineworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句查询优化续集相关的知识,希望对你有一定的参考价值。

--查询语句的快慢
--开启实际执行计划跟踪
--确保sql 性能问题,需要关闭自身的执行计划和缓存。
DBCC DROPCLEANBUFFERS --dropcleanbuffers 清楚缓冲区
DBCC FREEPROCCACHE --freeproccache 删除计划公诉缓存中的元素
--开启查询IO读取统计,时间统计
SET STATISTICS TIME ON --执行时间 statistics
SET STATISTICS IO ON --IO读取 statistics


--优化引擎重点关注其中的Duration、Writes、Reads、CPU,分析对象是TextData,及执行的语句。其中Duration为毫秒数,1000即为1秒。

以上是对于sql 语句的查询优化过程。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

我日常工作的数据处理比较少只有10w以下的数据,那么对于百万级的数据我们怎么优化呢?

查询条件的索引需要建立。条件不要去判断null值,不然会导致全表扫描。

所以在设计数据库表示,最好要用 not null 来填充数据。!= 或者<> 这种操作符都会导致放弃索引而全表扫描。or 也是,我们可以换成union 来代替。

in ,not in  用于嵌套查询,这个比较好理解。 但这会导致全表扫描, 我们可以用exists 提高效率。

对于一些参数语句 我们可以强制使用索引 在  from with(index(索引名))

应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描

不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。

在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致

 

 









以上是关于SQL语句查询优化续集的主要内容,如果未能解决你的问题,请参考以下文章

优化SQL查询:如何写出高性能SQL语句

优化SQL查询:如何写出高性能SQL语句

mysql如何优化以下语句,查询耗时太久了?

SQL查询语句优化的实用方法

如何做SQL优化?优化SQL语句,提高SQL查询效率。Effective MySQL之SQL语句最优化

怎么优化mysql查询语句