文章目录

  • 一、sys_config表
    • 1、sys_config表的结构
    • 2、用户自定义配置选项变量
    • 3、sys_config表中配置选项简析
  • 二、sys_config_insert_set_user触发器和sys_config_update_set_user触发器

一、sys_config表

1、sys_config表的结构

sys_config表包含了sys系统库的配置选项,一行数据就是一个配置选项。sys_config是一个innodb表,是可持久化的。
sys_config表的结构如下。

variable:字段的名称
value:字段的值
set_time:修改时间
set_by:修改的用户

2、用户自定义配置选项变量

为了减少对sys_config表的直接读取次数,sys系统库中的视图和存储过程在需要使用这些配置选项时,首先会去查询用户自定义配置选项变量,变量的名字和sys_config表的variable字段的值一样,使用方式为@sys.variable,默认情况下用户自定义配置选项变量为NULL,会去sys_config表中读取,读取后会更新用户自定义变量的值,这也会导致不同会话中配置选项的值不同的问题。

  • statement_truncate_len配置选项会影响format_statement()函数格式化语句的最大长度。默认值为64。
  • 调用一次format_statement函数。发现@sys.statement_truncate_len变量的值被更新为64。
  • 修改用户自定义变量值为16,sys_config表中还是64,但是format_statement读取的是用户自定义的配置选项变量,原来的SQL语句格式化为了16位。

3、sys_config表中配置选项简析

variable value set_by 作用
diagnostics.allow_i_s_tables OFF NULL 如果此选项为ON,则diagnostics()存储过程在调用时会扫描INFORMATION_SCHEMA.TABLES表,找到所有的基表与STATISTICS表执行联结查询,扫描每个表的统计信息。
diagnostics.include_raw OFF NULL 如果此选项为ON,则在diagnostics()存储过程的输出信息中会包括metrics视图中的原始输出信息
ps_thread_trx_info.max_length 65535 NULL ps_thread_trx_info()函数生成的JSON输出结果的最大长度。默认值为65535字节。
statement_performance_analyzer.limit 100 NULL 不具有内置限制的视图返回的最大行数。默认值为100
statement_performance_analyzer.view NULL NULL
statement_truncate_len 64 NULL format_statement函数格式化语句最大长度

对sys_config表的insert和update操作会触发sys_config_insert_set_user触发器和sys_config_update_set_user触发器,这两个触发器的definer是sys@localhost

二、sys_config_insert_set_user触发器和sys_config_update_set_user触发器

当对sys_config表执行insert操作添加配置选项时,sys_config_insert_set_user触发器会将该配置选项的setby字段设置为当前用户名。
当对sys_config表添加配置选项时,sys_config_update_set_user触发器会将该配置选项的setby字段设置为当前用户。

保证触发器生效的三个注意点

  • 这两个触发器的definer均为’mysql.sys’@‘localhost’,该用户在数据库安装时就被添加到了mysql.user表中,不要删除该用户,否则触发器无法执行。
  • 这两个触发器对sys_config表的默认权限只有select,而设置setby字段需要update权限,所以要为’mysql.sys’@'localhost’用户授权。
grant update,insert,select on sys.* to 'mysql.sys'@'localhost';
  • 有一个用户配置选项会控制触发器的开启状态。我们可以通过看触发器的内部实现了解。
    在触发器启动时会判断@sys.ignore_sys_config_triggers的值,只有这个值为0时触发器才会修改setby字段。默认情况下@sys.ignore_sys_config_triggers为NULL,所以需要我们手动修改。
    下面就是触发器成功启动的结果。

【MySQL】sys系统库配置表相关推荐

  1. mysql my.cof 配置表空间_my.conf配置大全

    [client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock basedir ...

  2. mysql 4G内存配置表

    [client] #password=your_password socket=/tmp/mysql.sock  ###通信协议等等的保存,[mysqld]必须同时有此行 ##mysql.sock若丢 ...

  3. MySQL 中的系统库之sys 系统库

    MySQL学习系列 系统库简介 以下系统库的介绍, 主要是扩展大家的知识面, 因为系统库中的数据很重要,没有对 MySQL 有全面通盘的了解, 不宜去操作其下的数据, 而且对系统库的管理维护是是 DB ...

  4. 记录mysql的配置表误删

    mysql这四个表删不得 那是以为是我项目的表,不小心删库跑路了 完全删除mysql 删除mysql的数据文件 sudo rm /var/lib/mysql/ -R 删除mysql的配置文件 sudo ...

  5. mysqldump单个库导出_初相识 | 全方位认识 sys 系统库

    前阵子,我们的"全方位认识performance_schema"系列为大家完整的介绍了performance_schema系统库.在我们的发布计划中为什么要把performance ...

  6. sys 系统库 笔记(一)—— 简介与快速入门

    系列文章参考自<MySQL 性能优化金字塔法则>,删除了书里重复说明和过于复杂的一些解释,完整版请参考原书. 前面一系列笔记介绍了performance_schema系统库,把它放在最前面 ...

  7. 初相识 | 全方位认识 sys 系统库

    前阵子,我们的"全方位认识performance_schema"系列为大家完整的介绍了performance_schema系统库.在我们的发布计划中为什么要把performance ...

  8. CentOS 6.5系统使用yum方式安装LAMP环境和phpMyAdmin,mysql8.0.1/mysql5.7.22+centos7,windows mysql安装、配置...

    介绍如何在CentOs6.2下面使用YUM配置安装LAMP环境,一些兄弟也很喜欢使用编译的安装方法,个人觉得如果不是对服务器做定制,用yum安装稳定简单,何必去download&make&am ...

  9. MySQL 下载与配置教程(免安装版)

    MySQL 下载与配置教程(免安装版) 说明 步骤 此博客已不再维护,更新内容将更新在另一篇博客中,链接:https://blog.csdn.net/wangpaiblog/article/detai ...

最新文章

  1. Java学习的30个目标以及系统架构师推荐的书
  2. OpenCV cv::reduce用法的实例(附完整代码)
  3. c语言将链表写入二进制文件_通过逐级遍历将二进制树转换为单链表的C程序
  4. 支持的存储类型有_跟我一起看博途1200系统手册之数据类型的介绍
  5. mysql 一对多 根据多条数据排序_优化的道路永无止境——Mysql的ICP及MRR
  6. skywalking与pinpoint全链路追踪方案对比
  7. Google Chrome 所有版本下载
  8. openwrt 需要高级浏览器_树莓派 + OpenWrt 实现 BT 下载机
  9. 显卡刷bios改型号_怎么刷显卡bios(显卡刷BIOS可以提高性能)
  10. 详细总结卡尔曼滤波原理+具体案例分析
  11. 英文电子书下载:salttiger.com
  12. PostgreSQL 视图
  13. 柔性电流传感器(柔性电流探头)的工作原理和特点是什么?
  14. [原]产品经理和韦小宝
  15. Python基础视频教程
  16. 区块链学习笔记:区块链浏览器
  17. NVMe-MI 时代的NVMe SSD监控和管理
  18. C 求函数参数的平均值
  19. php 元旦祝福,元旦祝福语 2019迎接2020句子
  20. 打开eclipse时出现了这怎样解决啊

热门文章

  1. PHP中常见的设计模式
  2. OpenSea: NFT市场的革命者
  3. HackTheBox::Bashed
  4. 智和信通自主研发智和网管数字化运维平台,助力金融业智慧转型
  5. Android 多窗口
  6. 红米K50电竞版上手体验
  7. 看不到inter信息服务器,解决win10系统internet信息服务(iis)管理器找不到的方法
  8. 一篇文章,讲透“复盘”
  9. java实现第六届蓝桥杯生命之树
  10. antd 实现 sidebar 左侧菜单·记