十三,MySQL系统数据库

128 阅读2分钟

information_schema

  • 作用:提供对数据库元数据的访问,如数据库、表、列、索引等信息。
  • 特点
    • 只读视图:所有数据通过虚拟表(视图)呈现,不可直接修改。
    • 跨引擎兼容:支持InnoDB、MyISAM等多种存储引擎的元数据查询。
  • 常用场景
    • 查询所有数据库或表的结构:SELECT * FROM information_schema.tables;
    • 查看列信息:SELECT * FROM information_schema.columns WHERE table_name='users';
  • 注意
    • 数据动态生成,不占用物理存储空间。
    • 适用于需要动态获取数据库结构的工具(如ORM框架)。

mysql

  • 作用:存储用户账户、权限、存储过程、事件等核心配置信息。
  • 关键表
    • user:用户账户及全局权限。
    • db:数据库级权限。
    • tables_priv:表级权限。
    • procs_priv:存储过程和函数权限。
    • event:定时任务(事件)定义。
  • 常用场景
    • 管理用户权限:GRANT SELECT ON db.* TO 'user'@'localhost';
    • 查看用户列表:SELECT user, host FROM mysql.user;
  • 注意
    • 禁止直接修改表:应使用GRANT/REVOKE语句管理权限,避免数据不一致。
    • 密码存储在authentication_string列(MySQL 5.7+)。

performance_schema

  • 作用:收集数据库服务器的性能数据,用于监控和调优。
  • 核心功能
    • 资源监控:跟踪线程、锁、内存、文件I/O等资源使用。
    • 事件统计:记录SQL执行耗时、错误日志等。
  • 常用表
    • events_statements_summary_by_digest:SQL语句性能摘要。
    • file_summary_by_event_name:文件I/O统计。
    • mutex_instances:锁竞争情况。
  • 注意
    • 默认部分功能关闭,需通过配置文件启用:performance_schema=ON
    • 数据量庞大,需针对性查询以避免性能影响。

sys

  • 作用:基于information_schemaperformance_schema高级性能分析工具
  • 特点
    • 简化视图:提供易读的预定义视图(如sys.schema_table_lock_waits)。
    • 存储过程:内置诊断工具(如sys.ps_trace_thread())。
  • 常用场景
    • 快速定位性能瓶颈:SELECT * FROM sys.schema_table_lock_waits;
    • 分析内存使用:SELECT * FROM sys.memory_global_by_current_bytes;
  • 注意
    • MySQL 5.7+ 版本默认安装,需手动初始化(执行sys_56.sql)。
    • 适合DBA和开发者快速诊断问题,无需编写复杂SQL。

其他系统数据库

  • ndbinfo(仅NDB集群):
    • 专为MySQL NDB Cluster设计,存储集群节点、状态等信息。
  • sys_aux(辅助存储):
    • 某些工具(如Enterprise Monitor)可能创建此库存储扩展数据。

注意事项

  1. 禁止直接修改:系统表结构复杂,直接修改可能导致数据损坏或服务崩溃。
  2. 备份与恢复
    • 使用mysqldump备份时默认包含系统数据库。
    • 恢复mysql库需谨慎,避免权限丢失。
  3. 版本差异
    • sys库在MySQL 5.7+才默认存在。
    • performance_schema在MySQL 5.5+引入,功能逐步增强。