java面试——慢查询

发布时间:2024-04-01 点击:140
我们先来看下面试题:
面试题:如何判断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=onslow_query_log_file="mysql_slow_query.log"//记录下没有使用索引的querylog-query-not-using-indexes(相关学习视频分享:java面试题及答案)
方式二:通过mysql数据库开启慢查询
mysql>set global slow_query_log=onmysql>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';相关推荐:java入门教程

网络信息安全认证
电脑酷狗音乐下载的歌曲在哪个文件夹 酷狗音乐下载歌曲的保存路径
cc域名表示什么
公司网站制作有哪些步骤?公司网站制作有哪些技巧呢?
我居然薅到了套路云国际羊毛?cPanel 25000个免费授权发放中
服务器好卡-云服务器问题
杭州云服务器怎么样知乎
怎么注册淘宝网站