我是靠谱客的博主 缓慢抽屉,最近开发中收集的这篇文章主要介绍mysql查询优化器下载_什么是mysql查询优化器?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

大家都知道MySQL查询语句,今天该大家介绍下mysql的查询优化器,查询优化器可以帮助mysql优化查询算法,那么究竟mysql数据库是怎样进行查询优化的呢?

eefd4f8ac9b7566a865f8087c216d9a0.png

我们今天主要和大家一起分享的是MySQL查询优化系列之MySQL查询优化器以及对其实际应用代码的具体描述,望大家会有所收获。

此文章主要向大家描述的是MySQL查询优化系列之MySQL查询优化器,当你在对一查询进行提交的时候,Mysql数据库会对它进行分析,主要是看其是否可以用来做一些优化使处理该查询的速度更快。

这一部分将介绍查询优化器是如何工作的。如果你想知道MySQL(和php搭配之最佳组合)采用的优化手段,可以查看MySQL(和PHP搭配之最佳组合)参考手册。

当然,MySQL(和PHP搭配之最佳组合)查询优化器也利用了索引,但是它也使用了其它一些信息。例如,如果你提交如下所示的查询,那么无论数据表有多大,MySQL(和PHP搭配之最佳组合)执行它的速度都会非常快:

b83026f97e745385583ad21e7083b527.png

在这个例子中,MySQL(和PHP搭配之最佳组合)查看WHERE子句,认识到没有符合查询条件的数据行,因此根本就不考虑搜索数据表。你可以通过提供一个EXPLAIN语句看到这种情况,这个语句让MySQL(和PHP搭配之最佳组合)显示自己执行的但实际上没有真正地执行的SELECT查询的一些信息。如果要使用EXPLAIN,只需要在EXPLAIN单词放在SELECT语句的前面:

8331f74d498c16da878572e5b8ed3ef3.png

通常情况下,EXPLAIN返回的信息比上面的信息要多一些,还包括用于扫描数据表的索引、使用的联结类型、每张数据表中估计需要检查的数据行数量等非空(NULL)信息。

优化器是如何工作的

MySQL(和PHP搭配之最佳组合)查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行。你的最终目标是提交SELECT语句查找数据行,而不是排除数据行。

优化器试图排除数据行的原因在于它排除数据行的速度越快,那么找到与条件匹配的数据行也就越快。如果能够首先进行最严格的测试,查询就可以执行地更快。假设你的查询检验了两个数据列,每个列上都有索引:

a95983e47863a44caf418dd815e2c7dc.png

假设col1上的测试匹配了900个数据行,col2上的测试匹配了300个数据行,而同时进行的测试只得到了30个数据行。先测试Col1会有900个数据行,需要检查它们找到其中的30个与col2中的值匹配记录,其中就有870次是失败了。

先测试col2会有300个数据行,需要检查它们找到其中的30个与col1中的值匹配的记录,只有270次是失败的,因此需要的计算和磁盘I/O更少。其结果是,优化器会先测试col2,因为这样做开销更小。

以上的相关内容就是对MySQL查询优化系列讲座之查询优化器的介绍,望你能有所收获。

最后

以上就是缓慢抽屉为你收集整理的mysql查询优化器下载_什么是mysql查询优化器?的全部内容,希望文章能够帮你解决mysql查询优化器下载_什么是mysql查询优化器?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部