[置顶] Mysql优化(三)sql语句优化

   继续我们在mysql优化方面的研究,本篇博客,我们用实践的例子在展示我们在编写sql语句方面如何能够使得mysql执行效率更高。

1、首先我们用explain关键字来查询我们编写的sql语句的效率,如图所示:

[置顶] Mysql优化(三)sql语句优化_第1张图片

table:实际对应的表名

possible_keys:可能用到的索引

key:实际用到的索引

ref:通过索引列可以直接引用到的某些数据行

row:实际影响的行数

Extra:表示使用了索引和where子句

2、我们使用一些mysql的内置函数

    min()和max()两个函数在使用查询过程中本身就是经过优化的,当使用的是主键查的时候,查询速度是相当快的,例如:select min(id) from it_area where pid=69,其中id是主键。另外尽量使用exists,不要使用子查询:

[置顶] Mysql优化(三)sql语句优化_第2张图片

    我们可以使用count(*)查询记录的行数,同样可以把查询数据组建成一个临时表用。group by是用来做统计的,而不能用在需要进行筛选数据的场景。使用union优化的时候,尽量使用union all,采用不过滤数据,因为union去重的代价非常高,我们一般用程序实现去重的部分。当然,我们也可以使用变量来减少我们的查询,将一个操作需要重复多次时,我们可以设置一个变量,通过变量来改变操作的次数。

[置顶] Mysql优化(三)sql语句优化_第3张图片

   当然如果where条件中也存在变量时,要where条件先发挥作用,然后才能变量起作用。

[置顶] Mysql优化(三)sql语句优化_第4张图片

   如果where条件中的变量不成立的话,那么整个select语句也不会发生作用。

3、通过msql本身的命令查看sql语句的执行情况:

查询增删改查的次数:

[置顶] Mysql优化(三)sql语句优化_第5张图片

设置mysql数据库表的引擎:

[置顶] Mysql优化(三)sql语句优化_第6张图片

查询慢查询:

[置顶] Mysql优化(三)sql语句优化_第7张图片

查询慢查询的时间:

[置顶] Mysql优化(三)sql语句优化_第8张图片

    到此关于sql语句方面的优化,我们先介绍上面的内容,对于mysql的优化还远没有结束,值得优化的地方还有很多,下面一篇博客我们从数据库方面分析如何进行mysql的优化。



你可能感兴趣的:([置顶] Mysql优化(三)sql语句优化)