如题,MySQL数据库,怎么查询比较耗时的sql语句

解决方案 »

  1.   

    听说mysql有慢日志
      

  2.   

    顾名思义,慢查询日志中记录的是执行时间较长的query,也就是我们常说的slow query,通过设--log-slow-queries[=file_name]来打开该功能并设置记录位置和文件名,默认文件名为hostname-slow.log,默认目录也是数据目录。
        慢查询日志采用的是简单的文本格式,可以通过各种文本编辑器查看其中的内容。其中记录了语句执行的时刻,执行所消耗的时间,执行用户,连接主机等相关信息。MySQL还提供了专门用来分析满查询日志的工具程序mysqlslowdump,用来帮助数据库管理人员解决可能存在的性能问题。
      

  3.   

    #查看慢SQL日志是否启用
    mysql> show variables like 'log_slow_queries'; 
     #查看执行慢于多少秒的SQL会记录到日志文件中
    mysql> show variables like 'long_query_time';
    #配置my.ini文件(inux下文件名为my.cnf), 查找到[mysqld]区段,增加日志的配置,如下示例:
    [mysqld]
    log="C:/temp/mysql.log"
    log_slow_queries="C:/temp/mysql_slow.log"
    long_query_time=1
    #log指示日志文件存放目录;
    log_slow_queries指示记录执行时间长的sql日志目录;
    long_query_time指示多长时间算是执行时间长,单位秒。
      

  4.   

    打开MYSQL的慢查询日志。
      

  5.   

     Man ri zhi !!!
      

  6.   

    如果想在页面上显示查询时间可以再后台计算时间:
    long startTime = System.currentTimeMillis();
    long endTime = System.currentTimeMillis();
    new BigDecimal(endTime).subtract(new BigDecimal(startTime)).divide(new BigDecimal(1000), 3, BigDecimal.ROUND_HALF_UP)
      

  7.   

    MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句
    1,slow_query_log2,long_query_time3,log_queries_not_using_indexes
    具体怎么设置,自己去百度看看