MySQL优化工具之 profiling

MySQL优化工具之profiling

使用慢查询日志分析出慢查询语句后,用profiling分析该语句的优化后执行效果。

查看慢查询设置

mysql> show variables like "%slow%";

+---------------------+---------------------------------+

| Variable_name       | Value                           |

+---------------------+---------------------------------+

| log_slow_queries    | ON                              |

| slow_launch_time    | 2                               |

| slow_query_log      | ON                              |

| slow_query_log_file | /var/lib/mysql/slow-queries.log |

+---------------------+---------------------------------+

4 rows in set (0.00 sec)

更改慢查询日志的文件位置:

mkdir /data/slow

chown -R mysql:mysql /data/slow

mysql> set global slow_query_log_file = "/data/slow/slow.log";

mysql> show variables like "%long_query_time%";

+-----------------+-----------+

| Variable_name   | Value     |

+-----------------+-----------+

| long_query_time | 10.000000 |

+-----------------+-----------+

1 row in set (0.00 sec)

设置慢查询记录,单位为秒

mysql> set long_query_time = 1;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like "%long_query_time%";

+-----------------+----------+

| Variable_name   | Value    |

+-----------------+----------+

| long_query_time | 1.000000 |

+-----------------+----------+

1 row in set (0.00 sec)

mysql> show variables like "%pro%";

+---------------------------+-------+

| Variable_name             | Value |

+---------------------------+-------+

| have_profiling            | YES   |

| profiling                 | OFF   |

| profiling_history_size    | 15    |

| protocol_version          | 10    |

| proxy_user                |       |

| slave_compressed_protocol | OFF   |

| stored_program_cache      | 256   |

+---------------------------+-------+

7 rows in set (0.00 sec)

开启profiling

mysql> set profiling = 1;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like "%pro%";

+---------------------------+-------+

| Variable_name             | Value |

+---------------------------+-------+

| have_profiling            | YES   |

| profiling                 | ON    |

| profiling_history_size    | 15    |

| protocol_version          | 10    |

| proxy_user                |       |

| slave_compressed_protocol | OFF   |

| stored_program_cache      | 256   |

+---------------------------+-------+

7 rows in set (0.00 sec)

查看sql语句执行情况

mysql> show profiles;

+----------+------------+--------------------------------------------------------------------+

| Query_ID | Duration   | Query                                                              |

+----------+------------+--------------------------------------------------------------------+

|       10 | 0.00034150 | show variables like "%slow%"                                       |

|       11 | 0.00009450 | set global slow_query_log_file = /data/slow.log                    |

|       12 | 0.00008825 | set global slow_query_log_file = "/data/slow.log"                  |

|       13 | 0.00016525 | set global slow_query_log_file = "/data/slow/slow.log"             |

|       14 | 0.00004975 | set global slow_query_log_file = /data/slow/slow.log               |

|       15 | 0.00031400 | show variables like "%slow%"                                       |

|       16 | 0.00005325 | set global slow_query_log_file = /var/lib/mysql/slow-queries.log   |

|       17 | 0.00009750 | set global slow_query_log_file = "/var/lib/mysql/slow-queries.log" |

|       18 | 0.00029575 | show variables like "%slow%"                                       |

|       19 | 0.00028575 | show variables like "%pro%"                                        |

|       20 | 0.00032200 | show variables like "%pro%"                                        |

|       21 | 0.00028725 | show variables like "%pro%"                                        |

|       22 | 0.00003675 | show profile for qurey 21                                          |

|       23 | 0.00004700 | show profile for qurey 1                                           |

|       24 | 0.00003450 | reset query cache                                                  |

+----------+------------+--------------------------------------------------------------------+

15 rows in set (0.00 sec)

查看单个sql语句的详细信息

mysql> show profile for query 15;

+--------------------+----------+

| Status             | Duration |

+--------------------+----------+

| starting           | 0.000049 |

| Opening tables     | 0.000029 |

| System lock        | 0.000006 |

| init               | 0.000006 |

| optimizing         | 0.000003 |

| statistics         | 0.000006 |

| preparing          | 0.000006 |

| executing          | 0.000174 |

| Sending data       | 0.000012 |

| end                | 0.000003 |

| query end          | 0.000002 |

| closing tables     | 0.000002 |

| removing tmp table | 0.000004 |

| closing tables     | 0.000002 |

| freeing items      | 0.000008 |

| logging slow query | 0.000002 |

| cleaning up        | 0.000002 |

+--------------------+----------+

17 rows in set (0.00 sec)

清除sql缓存

mysql> reset query cache;

Query OK, 0 rows affected (0.00 sec)

时间: 2024-11-09 20:41:34

MySQL优化工具之 profiling的相关文章

mysql 优化工具

explain  profiling 建议提供以下信息 show table status like 'audit';show create table audit;show index from audit;check table audit; analyze table audit; analyze 并不检查表是否有问题,只是重新分析一下键的分布情况.check table/ repaire table 是检查和修复的语句 SELECT * FROM [TABLE] FORCE INDEX

在Centos环境下安装mysql优化工具:pt-query-digest

事前说明,本人使用的是虚拟机做CentOS6.7,主机是windows10,主要用CentOS来安装软件并且操作. 作为运维工作人员掌握MySQL的"增删改查"是必须的,而再学习一点优化也是好的,MySQL自带一个叫"慢查文件"的东西,但是那玩意很基本,虽然很好操作但是能力也很有限,于是pt-query-digest 工具就应运而生,这个软件只有linux版,所以windows的用户可以关闭此页面了. 可以先看看https://www.percona.com/doc

mysql优化工具(explain)

Explain工具介绍 使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL注意:如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中 Explain分析示例1 示例表: 表1 DROP TABLE IF EXISTS `actor`; CREATE TABLE `actor` (`id` int(11)

Mysql优化(转)

Mysql优化主要通过执行计划,索引,sql语句,调整mysql内部配置 (http://blog.chinaunix.net/uid-11640640-id-3426908.html) 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三.配置优化 1)      max_connections 2)      back_log 3)      interactive_timeout 4)  

网站优化—MySQL优化

MySQL优化 简介 由于页面静态化技术可以实现对动态数据的缓存,但是有的时候还是需要去请求数据库.所以对数据库的优化也是不可缺少的. 优化思路 设计:存储引擎,字段,范式 自身:索引,自身的缓存 架构:读写分离 ? 存储引擎: MyISAM和InnoDB之间的对比.当然需要知道MySQL除了这两种存储引擎还有其他的存储引擎(memory存储引擎). MySQL在5.5版本之后默认的存储引擎为InnoDB 在面试的过程中,只要说出MyISAM和InnoDB的区别即可 ? 字段选择: 合适即好,能

一.mysql优化

一.mysql优化 1.网站请求走向分析优化的方面 需要优化的地方: a:网络优化,服务器硬件方面,CDN加速(访问离用户最近一台服务器获取资源文件(jquery,js)) b:页面静态化处理,访问速度更快 c:php代码本身需要优化(需要自身经验的积累) d:使用memcache,redis减轻数据库的压力,减少磁盘的i/o开销 e:mysql本身的优化 f:mysql架构(读写分离,主从复制) 2.mysql的优化的方向 存储层:选择合适的存储引擎,选择适当的列类型 设计层:给数据表建立合适

MySQL优化思路,以及解决方案

mysql优化索引和配置,以及慢查询分析 s首先基本的思路 1)性能瓶颈定位 使用show命令. 慢查询日志. explain分析查询. profiling分析查询. 2)索引及查询优化 3)配置优化 MySQL数据库常见的两个瓶颈cpu.i/o: CPU主要在饱和的时候发生在数据装入内存或磁盘上读取数据的时候 i/o发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的网络瓶颈,我们可以通过mpstat.iostat.vmstat.sar等命令查看系统的性能状态 例如:m

mysql优化相关

一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三.配置优化 1)      max_connections 2)      back_log 3)      interactive_timeout 4)      key_buffer_size 5)      query_cache_size 6)      record_buffer_size 7)      read_rnd_buffer

MySQL优化方向&思路

硬件级别         操作系统和硬件级别的优化着眼点: 1.对于CPU密集型的应用场景要使用更快速度的CPU甚至更多数量的CPU,为有着更多查询的场景使用更多的CPU等.基于多核以及超线程(hyperthreading)技术,现代的CPU架构越来越复杂.性能也越来越强了,但MySQL对多CPU架构的并行计算能力的利用仍然是有着不太尽如人意之处,尤其是较老的版本如MySQL 5.1之前的版本甚至无法发挥多CPU的优势.不过,通常需要实现的CPU性能提升目标有两类:低迟延和高吞吐量.低延迟需要更