mysql进阶-系统数据库和常用系统表

一 MySQL 的数据字典 - information_schema

  • 每个 MySQL 实例中都会存在 information_schema 库,用于存储 MySQL 实例中所有其他数据库的信息

根据用途分类何以将information_schema库的表分为

  • MySQL 实例统计信息字典表
  • InnoDB 锁、事务、统计信息字典表
  • InnoDB 全文索引字典表
  • InnoDB 压缩相关字典表

二 控制和管理信息库 - mysql

mysql库 是 MySQL 服务器的核心数据库,主要负责存储数据库的用户、权限、关键字等等
我们也可以按照功能将这些表分成很多类,例如:权限授予系统表日志系统表时区系统表

三 服务器性能指标 - performance_schema

performance_schema 在 MySQL 运行的过程中,收集服务器性能参数,并经过计算,存储为数据库运行的统计信息
按照功能可以分为5类:系统配置表当前事件表事件历史记录表事件统计表杂项表

NOTE:
虽然 performance_schema 提供了数据库运行过程中的各种统计信息,但是,它对数据库的性能影响很小。它的设计实现遵守了两个目标:

  • 不影响数据库的行为、不影响线程调用的顺序、不影响 SQL 的执行计划
  • 没有新增任何关键字或语句,所以,不会影响 SQL 语法分析器

performance_schema 承载的功能
刚刚已经简单介绍了 performance_schema 中都有哪些类型的表,这里,我们细化来叙述下 performance_schema 表所承载的功能。

  • 进度跟踪:可以通过 events_stages_current 表来查看当前事件的进度信息。通常用于跟踪长时间执行的任务(例如:批量插入、删除等等),performance_schema 会自动的提供执行语句的进度信息
    内存使用情况:performance_schema 分别从账户、线程、用户以及事件的角度统计了内存使用过程,了解这些,有助于我们调整服务器的内存消耗
  • 元数据锁:metadata_locks 表记录了元数据锁的相关信息。你可以知道:哪些会话占据元数据锁、哪些会话正在等待元数据锁等等
  • 检测器:可以用于存储过程、函数、事件调度器和触发器的检测
  • 事务:配置 setup_consumers、setup_instruments 表打开事务监控,就可以通过 events_transactions_current 表查询当前事务的状态

四 DBA 的好帮手 - sys

sys 库对information_schema 和 performance_schema 统计的各种信息进行记录并生成新的视图表,通过 sys,我们可以快速的查询出:哪些语句使用了临时表、哪个线程占用了最多的内存、哪些索引是冗余的等等

你可能感兴趣的:(mysql进阶-系统数据库和常用系统表)