show profile的使用

今天遇到个问题,刚刚启动的MySQL,运行的第一条语句是create database db;这条语句要运行10S,懵逼了,有趣的是每次都是整10S。

向大牛们请教说让使用show profile来观察开销。看官网介绍:
SHOW PROFILE [type [, type] ... ]
    [FOR QUERY n]
    [LIMIT row_count [OFFSET offset]]

type:
    ALL
  | BLOCK IO
  | CONTEXT SWITCHES
  | CPU
  | IPC
  | MEMORY
  | PAGE FAULTS
  | SOURCE
  | SWAPS
开启:set profiling=1;

mysql> create database tpdd;
Query OK, 1 row affected (10.01 sec)

mysql> show profile;
+--------------------------------+-----------+
| Status                         | Duration  |
+--------------------------------+-----------+
| starting                       |  0.000169 |
| checking permissions           |  0.000536 |
| query end                      |  0.002839 |
| Waiting for semi-sync ACK from | 10.000552 |
| query end                      |  0.000057 |
| closing tables                 |  0.000032 |
| freeing items                  |  0.000069 |
| logging slow query             |  0.000138 |
| cleaning up                    |  0.000046 |
+--------------------------------+-----------+
9 rows in set, 1 warning (0.02 sec)
发现是后台开启了半同步复制,查看设定的超时时间:

mysql> show global variables like 'rpl_semi_sync_%';
+------------------------------------+-------+
| Variable_name                      | Value |
+------------------------------------+-------+
| rpl_semi_sync_master_enabled       | ON    |
| rpl_semi_sync_master_timeout       | 10000 |
| rpl_semi_sync_master_trace_level   | 32    |
| rpl_semi_sync_master_wait_no_slave | ON    |
| rpl_semi_sync_slave_enabled        | ON    |
| rpl_semi_sync_slave_trace_level    | 32    |
+------------------------------------+-------+
6 rows in set (0.00 sec)
果然,之后认为是异步复制不再等待ACK就正常了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值