暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

原创 亂了乱了 2023-01-28
576

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!
————————————————
版权声明:本文为CSDN博主「weixin_39637920」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39637920/article/details/111795019

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论