java面试mysql慢查询_java面试——慢查询

本文介绍了如何判断和优化MySQL的慢查询,包括在my.ini中设置慢查询时间阈值,通过MySQL命令行开启慢查询日志,以及利用mysqldumpslow工具分析慢查询日志,提供了解决SQL性能问题的实践方法。
摘要由CSDN通过智能技术生成

bf2a467eca92e7305ac8cba1d4825a6c.png

我们先来看下面试题:

面试题:如何判断SQL查询操作是不是慢sql、如何优化(阿里面试题)

面试题:MySQL慢查询开启,语句分析(阿里面试题)

(学习视频分享:java教学视频)

一、开启mysql慢查询

方式一:修改配置文件

在 my.ini 增加几行:[mysqlld]

//定义查过多少秒的查询算是慢查询,我这里定义的是2秒

long_query_time=2

#5.0、5.1等版本配置如下选项

log-slow-queries="mysql_slow_query.log"

#5.5及以上版本配置如下选项

slow-query-log=On

slow_query_log_file="mysql_slow_query.log"

//记录下没有使用索引的query

log-query-not-using-indexes

(相关学习视频分享:java面试题及答案)

方式二:通过MySQL数据库开启慢查询mysql>set global slow_query_log=ON

mysql>set global long_query_time = 3600;

mysql>set global log_querise_not_using_indexes = ON;

二、执行一次慢查询操作

其实想要执行一次有实际意义的慢查询比较困难,因为在自己测试的时候,就算查询有20万条数据的海量表,也只需要0.几秒。我们可以通过如下语句代替:SELECT SLEEP(10);

三、查看慢查询的数量

通过如下sql语句,来查看一共执行过几次慢查询:show global status like '%slow%';

四、分析慢查询日志

方式一:通过工具分析

MySQL自带了mysqldumpslow工具用来分析slow query日志,除此之外,还有一些好用的开源工具。

这里假设保存的日志名为long.log

列出记录次数最多的10个sql语句:mysqldumpslow -s c -t 10 long.log

列出返回记录集最多的10个sql语句:mysqldumpslow -s r -t 10 long.log

方式二:直接分析mysql慢查询日志# Time: 121017 17:38:54

# User@Host: root[root] @ localhost [127.0.0.1]

# Query_time: 3.794217 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 4194304

SET timestamp=1350466734;

select * from wei where text='orange';

# Time: 121017 17:46:22

# User@Host: root[root] @ localhost [127.0.0.1]

# Query_time: 3.819219 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 4194304

SET timestamp=1350467182;

select * from wei where text='long';

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值