首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql 系统表有哪些

MySQL系统表主要包括以下几类:

1. 信息模式表(Information Schema Tables)

这些表提供了关于数据库元数据的信息,如数据库和表的名称、列的数据类型、访问权限等。

  • SCHEMATA: 包含所有数据库的信息。
  • TABLES: 包含数据库中表的信息。
  • COLUMNS: 包含表中列的信息。
  • STATISTICS: 包含关于表索引的信息。
  • USER_PRIVILEGES: 包含全局权限信息。
  • SCHEMA_PRIVILEGES: 包含数据库权限信息。
  • TABLE_PRIVILEGES: 包含表权限信息。
  • COLUMN_PRIVILEGES: 包含列权限信息。
  • CHARACTER_SETS: 包含可用的字符集信息。
  • COLLATIONS: 包含字符集的排序规则信息。
  • COLLATION_CHARACTER_SET_APPLICABILITY: 包含排序规则和字符集之间的关联信息。
  • TABLE_CONSTRAINTS: 包含表约束的信息。
  • KEY_COLUMN_USAGE: 包含表中约束的键列的信息。
  • ROUTINES: 包含存储过程和函数的信息。
  • VIEWS: 包含视图的信息。
  • TRIGGERS: 包含触发器的信息。

2. 性能模式表(Performance Schema Tables)

这些表提供了关于服务器性能的信息,用于监控和调优。

  • EVENTS_WAITS_CURRENT: 当前正在等待的事件。
  • EVENTS_WAITS_HISTORY: 最近的历史等待事件。
  • EVENTS_WAITS_SUMMARY_BY_HOST_BY_EVENT_NAME: 按主机和事件名称汇总的等待事件。
  • FILE_STATISTICS: 文件统计信息。
  • MACHINE: 机器信息。
  • MEMORY_SUMMARY_BY_ACCOUNT_BY_EVENT_NAME: 按账户和事件名称汇总的内存使用情况。
  • MEMORY_SUMMARY_BY_HOST_BY_EVENT_NAME: 按主机和事件名称汇总的内存使用情况。
  • MEMORY_SUMMARY_BY_THREAD_BY_EVENT_NAME: 按线程和事件名称汇总的内存使用情况。
  • MEMORY_SUMMARY GLOBAL_BY_EVENT_NAME: 全局内存使用情况汇总。
  • SESSION_ACCOUNT_CONNECTIONS: 会话账户连接信息。
  • SESSION_CONNECTIONS: 会话连接信息。
  • SESSION_EVENT: 会话事件信息。
  • SESSION_STATUS: 会话状态信息。
  • SESSION_VARIABLES: 会话变量信息。
  • STATISTICS: 统计信息。
  • TABLE_io_waits_summary_by_index_usage: 按索引使用情况汇总的表I/O等待信息。
  • TABLE_io_waits_summary_by_table: 按表汇总的表I/O等待信息。
  • TABLE_lock_waits_summary_by_table: 按表汇总的表锁等待信息。
  • THREADS: 线程信息。
  • USER_STATISTICS: 用户统计信息。

3. InnoDB系统表

InnoDB存储引擎有自己的系统表,主要用于存储内部数据和元数据。

  • INNODB_BUFFER_PAGE: 缓冲池页面信息。
  • INNODB_TRX: 当前事务信息。
  • INNODB_LOCK_WAITS: 锁等待信息。
  • INNODB_LOCKS: 锁信息。
  • INNODB_TRX_LOCK_WAITS: 事务锁等待信息。

4. 其他系统表

还有一些其他的系统表,用于特定的功能。

  • GLOBAL_STATUS: 全局状态变量。
  • GLOBAL_VARIABLES: 全局系统变量。
  • PROCESSLIST: 当前连接的进程列表。
  • USER: 用户信息。

应用场景

这些系统表主要用于数据库管理和维护,例如:

  • 数据库备份和恢复: 通过查询TABLESCOLUMNS表可以获取表的元数据,用于备份和恢复操作。
  • 性能监控和调优: 通过查询PERFORMANCE_SCHEMA中的表可以获取服务器的性能数据,帮助分析和优化性能。
  • 权限管理: 通过查询USER_PRIVILEGESSCHEMA_PRIVILEGESTABLE_PRIVILEGESCOLUMN_PRIVILEGES表可以管理用户权限。

常见问题及解决方法

问题:查询系统表时出现权限不足

原因: 当前用户没有足够的权限访问系统表。 解决方法: 使用具有足够权限的用户(如root用户)来执行查询,或者授予当前用户相应的权限。

代码语言:txt
复制
GRANT SELECT ON mysql.* TO 'your_user'@'localhost';
FLUSH PRIVILEGES;

问题:查询系统表时出现性能问题

原因: 系统表可能包含大量数据,查询时可能会导致性能下降。 解决方法: 使用合适的索引和查询条件,避免全表扫描。可以考虑使用EXPLAIN命令来分析查询计划,优化查询语句。

代码语言:txt
复制
EXPLAIN SELECT * FROM INFORMATION_SCHEMA.TABLES;

参考链接

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券