• 技术文章 >Java >Java面试题

    java面试——慢查询

    VV2020-11-20 15:24:39转载960

    我们先来看下面试题:

    面试题:如何判断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';

    相关推荐:java入门教程

    以上就是java面试——慢查询的详细内容,更多请关注php中文网其它相关文章!

    本文转载于:csdn,如有侵犯,请联系a@php.cn删除
    专题推荐:java 面试 慢查询
    上一篇:java面试之归并排序的应用 下一篇:java面试——高并发处理
    第14期线上培训班

    相关文章推荐

    • php-fpm7.0 慢查询设置及说明• 开启mysql慢查询日志的方法• Redis运维之慢查询日志• 如何开启mysql慢查询日志配置

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网