配置表 | 全方位认识 sys 系统库

本文详细介绍了MySQL的sys系统库中的sys_config表,包括其配置选项、字段含义以及如何设置和使用用户自定义配置选项变量。sys_config表用于持久化配置,其配置选项如diagnostics.include_raw和statement_truncate_len等,并通过触发器sys_config_insert_set_user和sys_config_update_set_user更新set_by列。此外,文章还强调了mysql.sys用户在sys_config表操作中的重要性。
摘要由CSDN通过智能技术生成

在上一篇《初相识 | 全方位认识 sys 系统库》中,我们针对sys 系统库做了一个不痛不痒的开端,是不是觉得太简单了?别急,本期我们将为大家带来系列第二篇《配置表|全方位认识 sys 系统库》,让你一次性重新找回学习performance_schema时的感觉,下面请跟随我们一起开始 sys 系统库的系统学习之旅吧。

 

| sys 系统库配置

1. sys_config表

该表包含sys系统库的配置选项,每个配置选项一行记录。该表是innodb表,可以通过客户端更新此表来持久化配置,server重启不会丢失。

 

sys_config表字段含义如下:

  • variable:配置选项名称

  • value:配置选项值

  • set_time:该行配置最近修改时间

  • set_by:最近一次对改行配置进行修改的帐户名。如果自server安装sys 系统库以来,该行配置从未被更改过,则该列值为NULL

 

为了减少对sys_config表直接读取的次数,sys 系统库中的视图、存储过程在需要使用到这些配置选项时,会优先检查这些配置选项对应的用户自定义配置选项变量(用户自定义配置选项变量与该表中的配置选项都具有相同的名称,例如:表中的diagnostics.include_raw选项,对应的自定义配置选项变量是@sys.diagnostics.include_raw)。如果用户定义的配置选项变量存在于当前会话作用域中并且是非空的,那么sys 系统库中的函数、存储过程将优先使用该配置选项变量值。否则,该sys 系统库函数和存储过程将使用sys_config表中的配置选项值(从表中读取配置选项值之后,会将sys_config表中的配置选项时同时更新到用户自定义配置选项变量中,以便在同一会话后续对该值的引用时使用变量值,而不必再次从sys_config表中读取),示例:statement_truncate_len配置选项控制format_statement()函数返回的语句的最大长度。默认值为64.如果要临时将当前会话的值更改为32,可以设置对应的@sys.statement_truncate_len用户定义的配置选项变量:

# statement_truncate_len配置选项默认是64,直接调用format_statement()函数返回是64字节长度,在未调用任何涉及到该配置选项的函数之前,该自定义变量值为NULL,此时函数需要从表中查询默认值
admin@localhost : sys 11:47:37> select @sys.statement_truncate_len;
+-----------------------------+
| @sys.statement_truncate_len |
+-----------------------------+
| NULL                        |
+-----------------------------+
1 row in set (0.00 sec)
admin@localhost : sys 11:51:53> SET @stmt = 'SELECT variable, value, set_time, set_by FROM sys_config';
Query OK, 0 rows affected (0.00 sec)
admin@localhost : sys 11:52:04> SELECT format_statement(@stmt);
+----------------------------------------------------------+
| format_statement(@stmt)                                  |
+----------------------------------------------------------+
| SELECT variab
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值