10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.1 mb
PDF (A4)- 41.2 mb
PDF (RPM)- 39.8 mb
HTML下载(TGZ)- 9.5 mb
HTML下载(Zip)- 9.6 mb
HTML下载(RPM)- 8.1 mb
手册页(TGZ)- 260.6 kb
手册页(Zip)- 371.7 kb
信息(Gzip)- 3.9 mb
信息(邮政编码)- 3.9 mb
本手册节选

27.19.1使用性能模式查询性能分析

下面的示例演示如何使用性能模式语句事件和阶段事件来检索与提供的分析信息相比较的数据显示配置文件而且显示配置文件语句。

setup_actors表可用于限制主机、用户或帐户对历史事件的收集,以减少运行时开销和历史表中收集的数据量。该示例的第一步展示了如何将历史事件的收集限制为特定用户。

Performance Schema以皮秒(万亿分之一秒)为单位显示事件计时器信息,将计时数据规范化为标准单位。在下面的例子中,TIMER_WAIT数值除以1000000000000表示以秒为单位的数据。值也被截断为小数点后6位,以显示与显示配置文件而且显示配置文件语句。

  1. 将历史事件的收集限制为运行查询的用户。默认情况下,setup_actors配置为允许监视和历史事件收集所有前台线程:

    mysql> SELECT * FROM performance_schema.setup_actors;+------+------+------+---------+---------+ | 主机用户| | | |启用历史作用  | +------+------+------+---------+---------+ | % | % | % | 是的|是的  | +------+------+------+---------+---------+

    中的默认行setup_actors表禁用所有前台线程的历史事件收集和监视,并插入一个新行,为运行查询的用户启用监视和历史事件收集:

    更新performance_schema。setup_actorsSET ENABLED = 'NO', HISTORY = 'NO' WHERE HOST = '%' AND USER = '%'; mysql> INSERT INTO performance_schema.setup_actors (HOST,USER,ROLE,ENABLED,HISTORY) VALUES('localhost','test_user','%','YES','YES');

    资料载于setup_actors表现在应该类似于以下内容:

    mysql> SELECT * FROM performance_schema.setup_actors;+-----------+-----------+------+---------+---------+ | 主机用户| | | |启用历史作用  | +-----------+-----------+------+---------+---------+ | % | % | % | 没有| | | localhost | test_user | % | |是的  | +-----------+-----------+------+---------+---------+
  2. 方法,确保语句和阶段插装已启用setup_instruments表格在默认情况下,有些工具可能已经启用。

    更新performance_schema。setup_instrumentsSET ENABLED = 'YES', TIMED = 'YES' WHERE NAME LIKE '%statement/%'; mysql> UPDATE performance_schema.setup_instruments SET ENABLED = 'YES', TIMED = 'YES' WHERE NAME LIKE '%stage/%';
  3. 确保events_statements_ *而且events_stages_ *启用了消费者。一些消费者可能在默认情况下已经启用。

    更新performance_schema。setup_consumers SET ENABLED = 'YES' WHERE NAME LIKE '%events_statements_%';更新performance_schema。setup_consumers SET ENABLED = 'YES' WHERE NAME LIKE '%events_stages_%';
  4. 在正在监视的用户帐户下,运行要分析的语句。例如:

    mysql> SELECT * FROM employees。WHERE emp_no = 10001;+--------+------------+------------+-----------+--------+------------+ | 性别列出| birth_date | first_name | last_name | | hire_date  | +--------+------------+------------+-----------+--------+------------+ | 10001 | 1953-09-02 |格奥尔基| Facello | | 1986-06-26  | +--------+------------+------------+-----------+--------+------------+
  5. 识别EVENT_ID语句的events_statements_history_long表格这一步类似于跑步显示配置文件要识别Query_ID.下面的查询产生类似于显示配置文件

    mysql> SELECT EVENT_ID, TRUNCATE(TIMER_WAIT/1000000000000,6) as Duration, SQL_TEXT FROM performance_schemaWHERE SQL_TEXT like '%10001%';+----------+----------+--------------------------------------------------------+ | event_id时间| | sql_text  | +----------+----------+--------------------------------------------------------+ | 31日| 0.028310 | SELECT * FROM员工。员工列出= 10001  | +----------+----------+--------------------------------------------------------+
  6. 查询events_stages_history_long表检索语句的阶段事件。阶段使用事件嵌套链接到语句。每个阶段事件记录都有一个NESTING_EVENT_ID列,该列包含EVENT_ID父语句的。

    mysql> SELECT event_name AS Stage, TRUNCATE(TIMER_WAIT/1000000000000,6) AS Duration FROM performance_schema。events_stages_history_long WHERE NESTING_EVENT_ID=31;+--------------------------------+----------+ | |阶段持续时间  | +--------------------------------+----------+ | 阶段/ sql /开始| 0.000080 | |阶段/ sql /检查权限| 0.000005 | |阶段/ sql /打开表| 0.027759 | |阶段/ sql / init | 0.000052 | |阶段/ sql /系统锁| 0.000009 | |阶段/ sql /优化| 0.000006 | |阶段/ sql /统计| 0.000082 | |阶段/ sql /准备| 0.000008 | |阶段/ sql /执行| 0.000000 | |阶段/ sql /发送数据| 0.000017 | | |阶段/ sql /结束0.000001 | |阶段/ sql /查询结束| 0.000004 | |阶段/ sql /关闭表| 0.000006 | |阶段/ sql /释放物品| 0.000272 | |阶段/ sql /清理| 0.000001  | +--------------------------------+----------+