Mysql优化(三)sql语句优化

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

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


table:实际对应的表名

possible_keys:可能用到的索引

key:实际用到的索引

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

row:实际影响的行数

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

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

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


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


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


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

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

查询增删改查的次数:


设置mysql数据库表的引擎:


查询慢查询:


查询慢查询的时间:


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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值