第一范文网 - 专业文章范例文档资料分享平台

MySQL5.5 performance - schema的介绍

来源:用户分享 时间:2025/7/2 10:36:30 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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的 的文档
MySQL5.5 performance - schema的介绍.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2ngas68r9e0a6rj16zqq_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top