数据库对象信息记录表|全方位认识 mysql 系统库

你说的曾经没有我的故事 提交于 2020-12-04 15:03:03

在上一期《访问权限控制系统|全方位认识 mysql 系统库》中,我们结合MySQL的权限表详细介绍了MySQL 的访问权限控制系统,本期我们将为大家带来系列第三篇《元数据记录表|全方位认识 mysql 系统库》,下面请跟随我们一起开始 mysql 系统库的系统学习之旅吧。

1、plugin

该表提供查询自定义安装的插件信息(非系统默认启用的插件),该表的功能已经被information_schema.plugins表取代。

下面是该表中存储的信息内容。

root@localhost : mysql 01:00:20> select * from plugin;
+------------------------------------------+-----------------------+
| name                                     | dl                    |
+------------------------------------------+-----------------------+
| CONNECTION_CONTROL                       | connection_control.so |
| CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS | connection_control.so |
+------------------------------------------+-----------------------+
2 rows in set (0.00 sec)

表字段含义

  • name:自定义安装插件时指定的插件名称。

  • dl:自定义安装的插件so库名称。

2、proc

该表提供查询与information_schema.routines表类似的内容(早期版本主要用户记录存储过程),但information_schema.routines表记录的更加详细。

下面是该表中存储的信息内容。

root@localhost : mysql 01:01:09> select * from proc limit 1\G;
*************************** 1. row ***************************
                  db: sys
                name: extract_schema_from_file_name
                type: FUNCTION
       specific_name: extract_schema_from_file_name
            language: SQL
     sql_data_access: NO_SQL
    is_deterministic: YES
       security_type: INVOKER
          param_list:  path VARCHAR(512) 
             returns: varchar(64) CHARSET utf8
                body: BEGIN RETURN LEFT(SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(path, '\\', '/'), '/', -2), '/', 1), 64); END
             definer: mysql.sys@localhost
             created: 2017-07-01 14:31:32
            modified: 2017-07-01 14:31:32
            sql_mode: 
             comment: 
 Description
 ......
character_set_client: utf8
collation_connection: utf8_general_ci
        db_collation: utf8_general_ci
           body_utf8: BEGIN RETURN LEFT(SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(path, '\', '/'), '/', -2), '/', 1), 64); END
1 row in set (0.01 sec)

表字段含义

  • 与information_schema.routines表类似,详情参考《Server层表级别对象字典表|全方位认识 information_schema》一文中routines部分,这里不再赘述。

3、event

该表提供查询计划任务相关的事件信息,该表中的信息与information_schema.events相同,且information_schema.events中记录的信息更加详细。

下面是该表中存储的信息内容。

root@localhost : mysql 01:02:41> select * from event limit 1\G;
*************************** 1. row ***************************
                  db: sbtest
                name: test_event
                body: BEGIN
insert into test_table select max(id) from sbtest1;
      END
             definer: root@%
          execute_at: NULL
      interval_value: 1
      interval_field: DAY
             created: 2018-01-21 17:05:37
            modified: 2018-01-21 17:08:56
       last_executed: NULL
              starts: 2018-01-21 09:05:37
                ends: NULL
              status: ENABLED
       on_completion: DROP
            sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
             comment: 每天统计sbtest1表中的最大自增值
          originator: 3306111
           time_zone: +08:00
character_set_client: utf8
collation_connection: utf8_general_ci
        db_collation: utf8_bin
           body_utf8: BEGIN
insert into test_table select max(id) from sbtest1;
      END
1 row in set (0.00 sec)

表字段含义

  • 与information_schema.events表的字段含义类似,详见《Server层表级别对象字典表|全方位认识 information_schema》一文中events部分,这里不再赘述。

4、func

该表提供查询与information_schema.routines表类似的内容(早期版本主要用于记录用户自定义函数),但information_schema.routines表记录的更加详细。

  • 另外,该表还专用于记录从so插件库中安装的函数信息。

下面是该表中存储的信息内容(这里列出的示例内容为从企业版so插件中安装的UDF函数)。

root@localhost : mysql 12:52:05> select * from func;
+--------------------------------+-----+--------------+-----------+
| name | ret | dl | type |
+--------------------------------+-----+--------------+-----------+
| audit_log_filter_flush | 0 | audit_log.so | function |
| audit_log_filter_remove_user | 0 | audit_log.so | function |
| audit_log_filter_set_user | 0 | audit_log.so | function |
| audit_log_filter_remove_filter | 0 | audit_log.so | function |
| audit_log_filter_set_filter | 0 | audit_log.so | function |
| set_firewall_mode | 0 | firewall.so | function |
| normalize_statement | 0 | firewall.so | function |
| mysql_firewall_flush_status | 0 | firewall.so | function |
| read_firewall_whitelist | 0 | firewall.so | aggregate |
| read_firewall_users | 0 | firewall.so | aggregate |
+--------------------------------+-----+--------------+-----------+
10 rows in set (0.00 sec)

表字段含义

  • 详见information_schema.routines表,详情参考《Server层表级别对象字典表|全方位认识 information_schema》一文中routines部分,这里不再赘述。

本期内容就介绍到这里,本期内容参考链接如下:

https://dev.mysql.com/doc/refman/5.7/en/system-database.html

"翻过这座山,你就可以看到一片海!"。坚持阅读我们的"全方位认识 mysql 系统库"系列文章分享,你就可以系统地学完它。 谢谢你的阅读,我们下期不见不散!

| 作者简介

罗小波·ScaleFlux数据库技术专家

《千金良方——MySQL性能优化金字塔法则》、《数据生态:MySQL复制技术与生产实践》作者之一。

熟悉MySQL体系结构,擅长数据库的整体调优,喜好专研开源技术,并热衷于开源技术的推广,在线上线下做过多次公开的数据库专题分享,发表过近100篇数据库相关的研究文章。

全文完。

Enjoy MySQL :)

叶老师的「MySQL核心优化」大课已升级到MySQL 8.0,扫码开启MySQL 8.0修行之旅吧

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!