MySQL学习记录 —— 이십삼 MySQL服务器文件系统(3)

07-19 514阅读

文章目录

  • 1、数据字典
  • 2、系统表
    • 各种系统表

      Mysql Schema是⼀个系统库,表中存储了MySQL服务器运行时所需的信息。广义上,mysql schema包含存储MySQL程序基本数据的数据字典和用于其他操作目的的系统表。数据字典表和系统表位于数据目录下一个名为mysql.ibd 的表空间文件中,使用的是InnoDB存储引擎。

      自带的库:

      MySQL学习记录 —— 이십삼 MySQL服务器文件系统(3)

      主要理解mysql库。

      1、数据字典

      MySQL 的数据字典,用来存储有关数据库对象自身的信息,不可以随意修改,否则可能造成服务器无法运行。character_sets就是有关可用字符集的信息,还有一些常见的:

      MySQL学习记录 —— 이십삼 MySQL服务器文件系统(3)

      数据字典表只能在调试版本访问,发行版本访问不了。不过可以通过INFORMATION_SCHEMA命令来查看可以查看的某些内容,比如

      select * from INFORMATION_SCHEMA.CHARACTER_SETS;
      

      2、系统表

      系统表按功能大致可以分为以下几类:权限授予系统表、对象信息系统表、日志系统表、服务器端帮助系统表、时区系统表、复制系统表、优化器系统表、杂项系统表。

      mysql库中的user表主要是关于用户的授权。两个查询的SQL语句:

      desc user;
      select * from user\G;
      

      各种系统表

      权限授予系统表

      包含有关用户账户及账户拥有的权限授权信息,主要的表有:

      • user :用户账户、全局权限和其他列。

      • global_grants :为用户分配的动态全局权限。

      • db :数据库级权限。

      • tables_priv :表级权限。

      • columns_priv : 列级权限。

      • procs_priv : 存储过程和函数权限。

      • proxies_priv : 代理用户权限。

      • default_roles :列出了用户连接和认证后要激活的默认角色。

      • role_edges : user 表的关联表,区分 user 表中某⼀行记录是账户还是角色。

      • password_history :密码更改的信息。

      对象信息系统表

      包含有关组件、可加载的服务器插件和函数的信息:

      component :使用 INSTALL COMPONENT 安装的服务器组件,表中列出了在服务器启动期间安装的组件。

      func : 使用 CREATE FUNCTION 安装的可加载函数,表中列出了在服务器启动期间加载的函数。

      plugin :使用 INSTALL PLUGIN 安装的服务器插件,表中列出了在服务器启动期间安装的插件。

      日志系统表

      服务器使用日志系统表进行日志记录:

      • general_log :一般查询日志表。

      • slow_log :慢查询日志表。

      ⽇志表使用 CSV 存储引擎。

      服务器端帮助系统表

      包含服务器端帮助信息:

      • help_category :有关帮助类别的信息。

      • help_keyword :与帮助主题关联的关键字。

      • help_relation :帮助关键字和主题之间的映射。

      • help_topic :帮助主题内容。

      时区系统表

      包含时区信息:

      • time_zone :时区 ID 以及是否使用闰秒。

      • time_zone_leap_second :发生闰秒时如何修正。

      • time_zone_name : 时区 ID 和名称之间的映射。

      • time_zone_transition,time_zone_transition_type : 时区说明及偏移量。

      复制系统表

      服务器使用以下系统表来支持复制

      • gtid_executed :用于存储 GTID 的值。

      • ndb_binlog_index :用于NDB Cluster 复制的二进制日志信息。只有在支持 NDB CLUSTER 的服务器才会创建此表,我们的课程不讨论NDB 的相关内容

      • slave_master_info,slave_relay_log_info,slave_worker_info : 用于存储从节点服务器上的复制信息。

      以上几张表都使用 InnoDB 存储引擎。

      优化器系统表

      这些系统表供优化器使用:

      • innodb_index_stats,innodb_table_stats : 用于 InnoDB 的持久优化器统计信息。

      • server_cost,engine_cost :优化器成本模型使用的表,包含查询期间发生的操作成本估算信息。server_cost 包含服务器操作的优化器成本估算。 engine_cost 包含对特定存储引擎操作的估计。

      杂项系统表

      • audit_log_filter,audit_log_user : 如果安装了 MySQL Enterprise Audit,存储审计日志过滤器定义和用户账户。

      • firewall_group_allowlist,firewall_groups,firewall_memebership,firewall_users,firewall_whitelist :如果安装了 MySQL Enterprise Firewall,这些存储表防火墙的使用信息。

      • servers :由 FEDERATED 存储引擎使用。

      • innodb_dynamic_metadata :由 InnoDB 存储引擎用来存储快速变化的表元数据,例如自动递增计数器值和索引树损坏标志。

      结束。

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]