如何定位并优化慢查询sql
更新:HHH   时间:2023-1-7


本篇内容主要讲解“如何定位并优化慢查询sql”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何定位并优化慢查询sql”吧!

  • 根据慢日志定位慢查询sql
    mysql> show variables like "%query%";
    +------------------------------+-------------------------------------------------+
    | Variable_name                | Value                                           |
    +------------------------------+-------------------------------------------------+
    | binlog_rows_query_log_events | OFF                                             |
    | ft_query_expansion_limit     | 20                                              |
    | have_query_cache             | YES                                             |
    | long_query_time              | 10.000000                                       |    查询时间
    | query_alloc_block_size       | 8192                                            |
    | query_cache_limit            | 1048576                                         |
    | query_cache_min_res_unit     | 4096                                            |
    | query_cache_size             | 1048576                                         |
    | query_cache_type             | OFF                                             |
    | query_cache_wlock_invalidate | OFF                                             |
    | query_prealloc_size          | 8192                                            |
    | slow_query_log               | OFF                                             | .  慢日志是否打开
    | slow_query_log_file          | /usr/local/mysql/data/tandeMacBook-Pro-slow.log |    慢日志log位置
    +------------------------------+-------------------------------------------------+
    
    
    mysql> set global show_query_log = on;   开启慢查询日志(最好写在配置文件)
    mysql> set global long_query_time = 1;   设置慢日志查询时间
    
    
    mysql> show status like "%slow_queries%";
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | Slow_queries  | 0     |    慢查询出现的次数
    +---------------+-------+
  • 使用explain等工具分析sql
  • mysql> explain select * from t_employee where name = "汪燕";
    +----+-------------+------------+------------+------+-------------------+-------------------+---------+-------+------+----------+-------+
    | id | select_type | table      | partitions | type | possible_keys     | key               | key_len | ref   | rows | filtered | Extra |
    +----+-------------+------------+------------+------+-------------------+-------------------+---------+-------+------+----------+-------+
    |  1 | SIMPLE      | t_employee | NULL       | ref  | idx_employee_name | idx_employee_name | 50      | const |    1 |   100.00 | NULL  |
    +----+-------------+------------+------------+------+-------------------+-------------------+---------+-------+------+----------+-------+

到此,相信大家对“如何定位并优化慢查询sql”有了更深的了解,不妨来实际操作一番吧!这里是天达云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

返回大数据教程...