MySQL系统表是MySQL数据库管理系统内部使用的一组表,它们存储了关于数据库的元数据,例如数据库结构、用户账户信息、权限设置、日志信息等。这些表通常由MySQL服务器自动维护,用户不应该直接修改它们。

1. `INFORMATION_SCHEMA.TABLES`:存储了数据库中所有表的元数据,包括表名、所属数据库、表类型、引擎类型等。2. `INFORMATION_SCHEMA.COLUMNS`:存储了数据库中所有列的元数据,包括列名、所属表、数据类型、是否允许NULL等。3. `INFORMATION_SCHEMA.USERS`:存储了MySQL用户账户的信息,包括用户名、主机名、密码等。4. `INFORMATION_SCHEMA.PRIVILEGES`:存储了MySQL用户的权限信息,包括用户名、主机名、权限类型等。5. `INFORMATION_SCHEMA.ENGINES`:存储了MySQL支持的存储引擎的信息,包括引擎名称、是否支持事务、是否支持外键等。6. `INFORMATION_SCHEMA.GLOBAL_VARIABLES`:存储了MySQL全局变量的信息,包括变量名、变量值等。7. `INFORMATION_SCHEMA.SESSION_VARIABLES`:存储了MySQL会话变量的信息,包括变量名、变量值等。8. `mysql.user`:存储了MySQL用户账户的信息,包括用户名、主机名、密码、权限等。9. `mysql.db`:存储了MySQL数据库的信息,包括数据库名、所属用户、权限等。10. `mysql.tables_priv`:存储了MySQL表的权限信息,包括表名、所属数据库、用户名、权限等。

请注意,这些系统表可能会随着MySQL版本的不同而有所变化。在实际使用中,建议参考MySQL官方文档以获取最新和最准确的信息。

MySQL系统表概述

MySQL系统表是数据库中一组特殊的表,它们存储了关于数据库结构和配置的重要信息。这些表对于数据库管理员和开发者来说至关重要,因为它们提供了对数据库内部运作的深入了解。在MySQL中,系统表通常位于名为`information_schema`和`mysql`的数据库中。

信息架构数据库(information_schema)

SCHEMATA: 提供了当前MySQL实例中所有数据库的信息。

TABLES: 提供了关于数据库中表的信息,包括表所属的schema、表类型、表引擎、创建时间等。

COLUMNS: 提供了关于表中列的信息,如列名、数据类型、是否为空、默认值等。

INDEXES: 提供了关于表中索引的信息,如索引名、索引类型、列名等。

STATISTICS: 提供了关于表统计信息的数据,如表的大小、行数等。

MySQL数据库(mysql)

user: 存储了MySQL服务器的用户账号信息。

db: 存储了数据库的权限信息,包括哪些用户可以访问哪些数据库。

tables_priv: 存储了关于表权限的信息,包括哪些用户可以对哪些表进行哪些操作。

columns_priv: 存储了关于列权限的信息,包括哪些用户可以对哪些列进行哪些操作。

procedures_priv: 存储了关于存储过程权限的信息。

functions_priv: 存储了关于函数权限的信息。

性能架构数据库(performance_schema)

events_statements_summary_by_digest: 提供了关于SQL语句执行情况的统计信息。

events_waits_summary_by_host_by_event_name: 提供了关于等待事件的统计信息,按主机和事件名称分组。

events_transactions_summary_by_digest: 提供了关于事务执行情况的统计信息。

events_transactions_summary_by_host_by_event_name: 提供了关于事务和等待事件的统计信息,按主机和事件名称分组。

sys数据库

sys.config: 提供了MySQL服务器配置信息的概览。

sys.tables: 提供了关于数据库中所有表的概览。

sys.indexes: 提供了关于数据库中所有索引的概览。

sys.processlist: 提供了当前正在运行的进程列表。

MySQL系统表是数据库管理员和开发者不可或缺的工具。通过了解和使用这些系统表,可以更好地管理和优化MySQL数据库。无论是查询数据库元数据、管理用户权限,还是监控数据库性能,系统表都提供了丰富的信息和支持。因此,熟悉MySQL系统表对于任何数据库管理员或开发者来说都是一项重要的技能。