云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > MySQL5.5 performance - schema的介绍

MySQL5.5 performance - schema的介绍

  • 62 次阅读
  • 3 次下载
  • 2025/7/3 18:44:00

MySQL5.5 performance_schema的介绍

mysql 5.5 版本 新增了一个性能优化的引擎: PERFORMANCE_SCHEMA这个功能默认是关闭的: 需要设置参数: performance_schema 才可以启动该功能,这个参数是静态参数,只能写在my.cnf 中 不能动态修改。 先看看有什么东西吧:

mysql> use performance_schema; Database changed mysql> show tables ;

+----------------------------------------------+ | Tables_in_performance_schema | +----------------------------------------------+ | cond_instances | | events_waits_current | | events_waits_history | | events_waits_history_long | | events_waits_summary_by_instance | | events_waits_summary_by_thread_by_event_name | | events_waits_summary_global_by_event_name | | file_instances | | file_summary_by_event_name | | file_summary_by_instance | | mutex_instances | | performance_timers | | rwlock_instances | | setup_consumers | | setup_instruments | | setup_timers | | threads | +----------------------------------------------+ 17 rows in set (0.00 sec)

这里的数据表分为几类:

1) setup table : 设置表,配置监控选项。

2) current events table : 记录当前那些thread 正在发生什么事情。

3) history table 发生的各种事件的历史记录表

4) summary table 对各种事件的统计表

5) 杂项表,乱七八糟表。

setup 表:

mysql> SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES -> WHERE TABLE_SCHEMA = 'performance_schema' -> AND TABLE_NAME LIKE 'setup%'; +-------------------+ | TABLE_NAME | +-------------------+ | setup_consumers | | setup_instruments | | setup_timers | +-------------------+

setup_consumers 描述各种事件

setup_instruments 描述这个数据库下的表名以及是否开启监控。

setup_timers 描述 监控选项已经采样频率的时间间隔

这个要多说一点 目前 performance-schema 只支持 'wait' 时间的监控,代码树上 wait/ 下的函数都可以监控到。

文档上说了只有 'wait' 事件的检测,有没有其他的选项呢?

看看源代码:

static row_setup_timers all_setup_timers_data[COUNT_SETUP_TIMERS]= { {

{ C_STRING_WITH_LEN(\}, &wait_timer } };

THR_LOCK table_setup_timers::m_table_lock;

int table_setup_timers::update_row_values(TABLE *table, const unsigned char *, unsigned char *, Field **fields) {

Field *f; longlong value;

DBUG_ASSERT(m_row);

for (; (f= *fields) ; fields++) {

if (bitmap_is_set(table->write_set, f->field_index)) {

switch(f->field_index) {

case 0: /* NAME */

my_error(ER_WRONG_PERFSCHEMA_USAGE, MYF(0)); return HA_ERR_WRONG_COMMAND; case 1: /* TIMER_NAME */ value= get_field_enum(f);

if ((value >= FIRST_TIMER_NAME) && (value <= LAST_TIMER_NAME)) *(m_row->m_timer_name_ptr)= (enum_timer_name) value; else

return HA_ERR_WRONG_COMMAND; break; default:

DBUG_ASSERT(false); } } }

return 0; }

代码里写死了,只有 'wait' 一个值,不排除以后的版本会增加新的关键字,但至少目前就只有一个啦。 并且这个表的name 字段是不允许修改的的。 下面的修改的方法里没有做任何处理,涉及到name字段的修改,直接报错。

mysql> SELECT * FROM setup_timers; +------+------------+ | NAME | TIMER_NAME | +------+------------+ | wait | CYCLE | +------+------------+

只有 timer_name 可以update 这是一个enum 字段。

性能事件表:

mysql> SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES -> WHERE TABLE_SCHEMA = 'performance_schema' -> AND TABLE_NAME LIKE '%current'; +----------------------+ | TABLE_NAME | +----------------------+ | events_waits_current | +----------------------+

记录当前正在发生的等待事件,这个表是只读的表,不能update ,delete ,但是可以truncate

具体字段是什么意思就自己去查doc 了,这里不说了。

性能历史表:

mysql> SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES -> WHERE TABLE_SCHEMA = 'performance_schema'

-> AND (TABLE_NAME LIKE '%history' OR TABLE_NAME LIKE '%history_long'); +---------------------------+ | TABLE_NAME | +---------------------------+ | events_waits_history | | events_waits_history_long | +---------------------------+

这些表与前面的性能表的结构是一致的, history 表只保留每个线程(thread) 的最近的10个事件, history_long 记录最近的10000个事件。

新事件如表,如果旧表满了,就会丢弃旧的数据,标准的先进先出(FIFO) 这俩表也是只读表,只能truncate

事件汇总表:

mysql> SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES -> WHERE TABLE_SCHEMA = 'performance_schema' -> AND TABLE_NAME LIKE '%summary%'; +----------------------------------------------+ | TABLE_NAME | +----------------------------------------------+ | events_waits_summary_by_instance | | events_waits_summary_by_thread_by_event_name | | events_waits_summary_global_by_event_name | | file_summary_by_event_name | | file_summary_by_instance |

搜索更多关于: MySQL5.5 performance - schema的 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

MySQL5.5 performance_schema的介绍 mysql 5.5 版本 新增了一个性能优化的引擎: PERFORMANCE_SCHEMA这个功能默认是关闭的: 需要设置参数: performance_schema 才可以启动该功能,这个参数是静态参数,只能写在my.cnf 中 不能动态修改。 先看看有什么东西吧: mysql> use performance_schema; Database changed mysql> show tables ; +----------------------------------------------+ | Tables_in_performance_schema | +--------------------------------

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com