mysql的默认用户都有啥_MYSQL三个默认库的介绍

mysql5.5 版本 新增了一个性能优化的引擎: PERFORMANCE_SCHEMA这个功能默认是关闭的:

需要设置参数: performance_schema  才可以启动该功能,这个参数是静态参数,只能写在my.cnf 中 不能动态修改。

先看看有什么东西吧:

mysql> useperformance_schema;Databasechanged

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 FROMINFORMATION_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") },&wait_timer

}

};

THR_LOCK table_setup_timers::m_table_lock;int table_setup_timers::update_row_values(TABLE *table,

const unsignedchar *,

unsignedchar *,

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));returnHA_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

returnHA_ERR_WRONG_COMMAND;break;default:

DBUG_ASSERT(false);

}

}

}return 0;

}

代码里写死了,只有 'wait' 一个值,不排除以后的版本会增加新的关键字,但至少目前就只有一个啦。

并且这个表的name 字段是不允许修改的的。 下面的修改的方法里没有做任何处理,涉及到name字段的修改,直接报错。

mysql> SELECT * FROMsetup_timers;+------+------------+

| NAME | TIMER_NAME |

+------+------------+

| wait | CYCLE |

+------+------------+

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

性能事件表:

mysql> SELECT TABLE_NAME FROMINFORMATION_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 FROMINFORMATION_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 FROMINFORMATION_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 |

+----------------------------------------------+

按照相关的标准对进行的事件统计表,

events_waits_summary_global_by_event_name     在mysql5.5.7 以前叫: EVENTS_WAITS_SUMMARY_BY_EVENT_NAME

表也是只读的,只能turcate

performance schemainstance 表:

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

-> AND TABLE_NAME LIKE '%instances';+------------------+

| TABLE_NAME |

+------------------+

| cond_instances |

| file_instances |

| mutex_instances |

| rwlock_instances |

+------------------+

记录各种等待事件涉及到的实例  :  主要是3类:  cond  (容器? ) mutex (互斥锁) ,rwlock (读写锁)

这表是只读的。

乱七八糟表:

mysql> SELECT * FROMperformance_timers;+-------------+-----------------+------------------+----------------+

| TIMER_NAME | TIMER_FREQUENCY | TIMER_RESOLUTION | TIMER_OVERHEAD |

+-------------+-----------------+------------------+----------------+

| CYCLE | 2389029850 | 1 | 72 |

| NANOSECOND | NULL | NULL | NULL |

| MICROSECOND | 1000000 | 1 | 585 |

| MILLISECOND | 1035 | 1 | 738 |

| TICK | 101 | 1 | 630 |

+-------------+-----------------+------------------+----------------+

这个表式只读表,记录了事件采样频率的设定,我们前面说的setup_timer 表的timer_name 只能区这4个中一个。

mysql> SELECT * FROMthreads;+-----------+----------------+----------------------------------------+

| THREAD_ID | PROCESSLIST_ID | NAME |

+-----------+----------------+----------------------------------------+

| 0 | 0 | thread/sql/main |

| 1 | 0 | thread/innodb/io_handler_thread |

| 16 | 0 | thread/sql/signal_handler |

| 23 | 7 | thread/sql/one_connection |

| 5 | 0 | thread/innodb/io_handler_thread |

| 12 | 0 | thread/innodb/srv_lock_timeout_thread |

| 22 | 6 | thread/sql/one_connection |

这个表记录了系统里当前存在的各种线程。

下面就是 涉及到performance_schema的各个系统参数了:

mysql> SHOW VARIABLES LIKE 'perf%';+---------------------------------------------------+---------+

| Variable_name | Value |

+---------------------------------------------------+---------+

| performance_schema | ON |

| performance_schema_events_waits_history_long_size | 10000 |

| performance_schema_events_waits_history_size | 10 |

| performance_schema_max_cond_classes | 80 |

| performance_schema_max_cond_instances | 1000 |

| performance_schema_max_file_classes | 50 |

| performance_schema_max_file_handles | 32768 |

| performance_schema_max_file_instances | 10000 |

| performance_schema_max_mutex_classes | 200 |

| performance_schema_max_mutex_instances | 1000000 |

| performance_schema_max_rwlock_classes | 30 |

| performance_schema_max_rwlock_instances | 1000000 |

| performance_schema_max_table_handles | 100000 |

| performance_schema_max_table_instances | 50000 |

| performance_schema_max_thread_classes | 50 |

| performance_schema_max_thread_instances | 1000 |

+---------------------------------------------------+---------+

涉及到系统状态的参数:

mysql> SHOW STATUS LIKE 'perf%';+------------------------------------------+-------+

| Variable_name | Value |

+------------------------------------------+-------+

| Performance_schema_cond_classes_lost | 0 |

| Performance_schema_cond_instances_lost | 0 |

| Performance_schema_file_classes_lost | 0 |

| Performance_schema_file_handles_lost | 0 |

| Performance_schema_file_instances_lost | 0 |

| Performance_schema_locker_lost | 0 |

| Performance_schema_mutex_classes_lost | 0 |

| Performance_schema_mutex_instances_lost | 0 |

| Performance_schema_rwlock_classes_lost | 0 |

| Performance_schema_rwlock_instances_lost | 0 |

| Performance_schema_table_handles_lost | 0 |

| Performance_schema_table_instances_lost | 0 |

| Performance_schema_thread_classes_lost | 0 |

| Performance_schema_thread_instances_lost | 0 |

+------------------------------------------+-------+

Live together,or Die alone!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值