您的位置:首页 > 数据库 > MySQL

show profile的使用

2016-04-13 16:24 567 查看
今天遇到个问题,刚刚启动的MySQL,运行的第一条语句是create database db;这条语句要运行10S,懵逼了,有趣的是每次都是整10S。


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

type
:
ALL
| BLOCK IO
| CONTEXT SWITCHES
| CPU
| IPC
| MEMORY
| PAGE FAULTS
| SOURCE
| SWAPS
[/code]
开启: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就正常了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql