问题之如何定位数据库的慢查询并优化

调优策略
* 设置数据库的慢查询为on:set GLOBAL slow_query_log = on;
* 可以使用slowshow VARIABLES like ‘%quer%’;查看开启状况
* 然后设置慢查询的时间限制,默认时10秒,可以将其 设置为1秒。
* 这样在慢查询的时候,只要超过时间的限制,就会在日志中打印相关的信息:包括查尊的语句,所用的时间等。
* explain分析查询语句:直接在sql语句前添加explain语句,可以分析各个字段的信息,来进行优化

	* type :

	* extra:

	* id: 一般会显示sql语句的查询的顺序,一般先查询的语句的id值往回越大。

策略
* 修改查询的字段,可以将查询的字段修改为其他的查询较快的字段
* 建立索引
注意:使用主键索引并非比其他的索引快,比如:
在这两个查询中,第一个是mysql的优化引擎自动选择查询的健,使用的是非主键,这是因为主键使用的是密集索引,因而在查询的时候会将其他列的索引也存放到叶子节点中,带哦之查询的效率变慢,稀疏索引只会存储关键字和索引,在查询的时候优化引擎会选择最优的查询。 但是优化引擎并非完全可靠。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值