注:本文根据大模型整理
1. information_schema 数据库说明
在MySQL 5.7中,information_schema
数据库是一个特殊的、只读的数据库,它提供了关于MySQL服务器所维护的所有其他数据库的信息。这个数据库不直接存储用户数据,而是包含了关于数据库元数据的详细信息,如数据库和表的结构、列的数据类型、访问权限等。这些信息对于数据库的管理、优化和监控至关重要。
以下是information_schema
数据库的详细说明:
1.1、概述
- 作用:
information_schema
数据库是MySQL的一个内置数据库,用于提供对其他所有数据库的元数据的访问。元数据是关于数据的数据,包括数据库名、表名、列名、数据类型、索引、视图、存储过程和函数等的信息。 - 特点:
- 只读:
information_schema
中的所有表都是只读的,用户不能在这些表上执行INSERT、UPDATE或DELETE操作。 - 动态生成:
information_schema
中的信息是由MySQL服务器动态生成的,反映了数据库的当前状态。 - 广泛的信息:它包含了关于数据库结构、权限、性能等多方面的信息。
- 只读:
1.2、用途
- 数据库管理:通过查询
information_schema
中的表,管理员可以获取数据库的详细结构信息,从而进行数据库的设计、优化和维护。 - 权限控制:
information_schema
还包含有关用户权限的信息,这对于实施安全策略至关重要。 - 性能监控:虽然
information_schema
本身不直接提供性能监控数据(这部分功能主要由performance_schema
数据库承担),但它提供的元数据可以用于分析数据库的性能瓶颈。
1.3、注意事项
- 访问权限:虽然每个MySQL用户都可以访问
information_schema
,但他们只能看到自己有权限访问的那些行。 - 使用限制:由于
information_schema
中的表是视图而不是基础表,因此不能在这些表上设置触发器或与之关联的文件。 - 谨慎操作:虽然
information_schema
是只读的,但在进行数据库管理和优化时仍需谨慎操作,以避免对数据库性能造成不利影响。
2. information_schema 中的视图说明
在 MySQL 5.7 中共有 76 个视图,说明如下:
CHARACTER_SETS:显示所有可用的字符集。使用场景:查看数据库支持的所有字符集,以便在创建表或列时选择合适的字符集。
CLIENT_STATISTICS:显示客户端连接统计信息。使用场景:监控客户端连接的状态和性能,以便进行故障排查和性能优化。
COLLATIONS:显示所有可用的排序规则。使用场景:查看数据库支持的所有排序规则,以便在创建表或列时选择合适的排序规则。
COLLATION_CHARACTER_SET_APPLICABILITY:显示排序规则与字符集的适用性。使用场景:了解排序规则与字符集之间的关系,以便在创建表或列时选择合适的组合。
COLUMNS:显示所有表的列信息。使用场景:查看表结构,以便进行数据操作和分析。
COLUMN_PRIVILEGES:显示列的权限信息。使用场景:管理用户对表列的访问权限,确保数据安全。
INDEX_STATISTICS:显示索引统计信息。使用场景:查看索引的使用情况,以便进行性能优化和故障排查。
ENGINES:显示所有可用的存储引擎。使用场景:查看数据库支持的所有存储引擎,以便在创建表时选择合适的存储引擎。
EVENTS:显示事件调度器的事件信息。使用场景:管理和监控数据库中的定时任务,以便进行计划任务的管理和维护。
FILES:显示文件系统的文件信息。使用场景:查看数据库文件系统的结构和状态,以便进行备份和恢复操作。
GLOBAL_STATUS:显示全局状态变量的信息。使用场景:查看数据库的整体运行状态,以便进行性能监控和故障排查。
GLOBAL_TEMPORARY_TABLES:显示全局临时表的信息。使用场景:查看全局临时表的使用情况,以便进行性能优化和故障排查。
GLOBAL_VARIABLES:显示全局变量的信息。使用场景:查看数据库的全局配置参数,以便进行性能调优和故障排查。
KEY_COLUMN_USAGE:显示键列的使用信息。使用场景:查看表的主键、外键等信息,以便进行数据完整性维护和性能优化。
OPTIMIZER_TRACE:显示优化器跟踪信息。使用场景:查看优化器的执行过程,以便进行性能分析和优化。
PARAMETERS:显示参数信息。使用场景:查看数据库的配置参数,以便进行性能调优和故障排查。
PARTITIONS:显示分区信息。使用场景:查看表的分区结构,以便进行分区表的管理和维护。
PLUGINS:显示插件信息。使用场景:查看已安装的插件,以便进行插件管理和功能扩展。
PROCESSLIST:显示当前正在运行的进程列表。使用场景:查看数据库的并发连接情况,以便进行性能监控和故障排查。
PROFILING:显示性能分析信息。使用场景:查看SQL语句的执行性能,以便进行性能优化和故障排查。
REFERENTIAL_CONSTRAINTS:显示引用约束信息。使用场景:查看表之间的关联关系,以便进行数据完整性维护和性能优化。
ROUTINES:显示存储过程和函数的信息。使用场景:查看数据库中的存储过程和函数,以便进行存储过程和函数的管理和维护。
SCHEMATA:显示所有数据库的模式信息。使用场景:查看数据库中的所有模式,以便进行模式管理和数据组织。
SCHEMA_PRIVILEGES:显示模式的权限信息。使用场景:管理用户对模式的访问权限,确保数据安全。
SESSION_STATUS:显示会话状态信息。使用场景:查看当前会话的状态,以便进行性能监控和故障排查。
SESSION_VARIABLES:显示会话变量的信息。使用场景:查看当前会话的配置参数,以便进行性能调优和故障排查。
STATISTICS:显示表的统计信息。使用场景:查看表的数据分布情况,以便进行性能优化和故障排查。
TABLES:显示所有表的信息。使用场景:查看数据库中的所有表,以便进行表管理和数据操作。
TABLESPACES:显示表空间信息。使用场景:查看数据库中的表空间结构,以便进行表空间管理和备份恢复操作。
TABLE_CONSTRAINTS:显示表约束信息。使用场景:查看表的约束条件,以便进行数据完整性维护和性能优化。
TABLE_PRIVILEGES:显示表的权限信息。使用场景:管理用户对表的访问权限,确保数据安全。
TABLE_STATISTICS:显示表的统计信息。使用场景:查看表的数据分布情况,以便进行性能优化和故障排查。
TEMPORARY_TABLES:显示临时表的信息。使用场景:查看临时表的使用情况,以便进行性能优化和故障排查。
THREAD_STATISTICS:显示线程统计信息。使用场景:查看线程的使用情况,以便进行性能监控和故障排查。
TRIGGERS:显示触发器信息。使用场景:查看数据库中的触发器,以便进行触发器管理和数据操作。
USER_PRIVILEGES:显示用户的权限信息。使用场景:管理用户对数据库的访问权限,确保数据安全。
USER_STATISTICS:显示用户的统计信息。使用场景:查看用户的活动情况,以便进行性能监控和故障排查。
VIEWS:显示视图信息。使用场景:查看数据库中的所有视图,以便进行视图管理和数据操作。
INNODB_CMP:显示InnoDB压缩信息。使用场景:查看InnoDB压缩的使用情况,以便进行性能优化和故障排查。
INNODB_CMP_RESET:重置InnoDB压缩信息。使用场景:重置InnoDB压缩信息,以便重新收集压缩数据。
INNODB_SYS_DATAFILES:显示InnoDB系统数据文件信息。使用场景:查看InnoDB系统数据文件的结构,以便进行备份恢复操作。
XTRADB_READ_VIEW:显示XtraDB读取视图信息。使用场景:查看XtraDB读取视图的使用情况,以便进行性能优化和故障排查。
INNODB_SYS_TABLESTATS:显示InnoDB系统表统计信息。使用场景:查看InnoDB系统表的统计信息,以便进行性能优化和故障排查。
XTRADB_RSEG:显示XtraDB段信息。使用场景:查看XtraDB段的使用情况,以便进行性能优化和故障排查。
INNODB_BUFFER_PAGE:显示InnoDB缓冲池页面信息。使用场景:查看InnoDB缓冲池页面的使用情况,以便进行性能优化和故障排查。
INNODB_TRX:显示InnoDB事务信息。使用场景:查看InnoDB事务的状态,以便进行性能监控和故障排查。
INNODB_CMP_PER_INDEX:显示每个索引的压缩信息。使用场景:查看每个索引的压缩情况,以便进行性能优化和故障排查。
INNODB_METRICS:显示InnoDB度量信息。使用场景:查看InnoDB的性能指标,以便进行性能监控和故障排查。
INNODB_FT_DELETED:显示InnoDB全文索引已删除文档信息。使用场景:查看全文索引中已删除文档的情况,以便进行性能优化和故障排查。
INNODB_LOCKS:显示InnoDB锁信息。使用场景:查看InnoDB锁的使用情况,以便进行性能监控和故障排查。
INNODB_LOCK_WAITS:显示InnoDB锁等待信息。使用场景:查看InnoDB锁等待的情况,以便进行性能优化和故障排查。
XTRADB_INTERNAL_HASH_TABLES:显示XtraDB内部哈希表信息。使用场景:查看XtraDB内部哈希表的使用情况,以便进行性能优化和故障排查。
INNODB_TABLESPACES_ENCRYPTION:显示InnoDB表空间加密信息。使用场景:查看InnoDB表空间加密的使用情况,以便进行安全性管理。
INNODB_CMPMEM_RESET:重置InnoDB压缩内存信息。使用场景:重置InnoDB压缩内存信息,以便重新收集压缩数据。
INNODB_SYS_FIELDS:显示InnoDB系统字段信息。使用场景:查看InnoDB系统字段的结构,以便进行备份恢复操作。
XTRADB_ZIP_DICT:显示XtraDB压缩字典信息。使用场景:查看XtraDB压缩字典的使用情况,以便进行性能优化和故障排查。
INNODB_TABLESPACES_SCRUBBING:显示InnoDB表空间清理信息。使用场景:查看InnoDB表空间清理的使用情况,以便进行性能优化和故障排查。
INNODB_TEMP_TABLE_INFO:显示InnoDB临时表信息。使用场景:查看InnoDB临时表的使用情况,以便进行性能优化和故障排查。
INNODB_FT_INDEX_TABLE:显示InnoDB全文索引表信息。使用场景:查看全文索引表的状态,以便进行性能优化和故障排查。
INNODB_CMPMEM:显示InnoDB压缩内存信息。使用场景:查看InnoDB压缩内存的使用情况,以便进行性能优化和故障排查。
INNODB_SYS_TABLESPACES:显示InnoDB系统表空间信息。使用场景:查看InnoDB系统表空间的结构,以便进行备份恢复操作。
INNODB_CMP_PER_INDEX_RESET:重置每个索引的压缩信息。使用场景:重置每个索引的压缩信息,以便重新收集压缩数据。
INNODB_SYS_FOREIGN_COLS:显示InnoDB系统外键列信息。使用场景:查看InnoDB系统外键列的结构,以便进行备份恢复操作。
INNODB_FT_INDEX_CACHE:显示InnoDB全文索引缓存信息。使用场景:查看全文索引缓存的使用情况,以便进行性能优化和故障排查。
INNODB_BUFFER_POOL_STATS:显示InnoDB缓冲池统计信息。使用场景:查看InnoDB缓冲池的使用情况,以便进行性能优化和故障排查。
INNODB_FT_BEING_DELETED:显示InnoDB全文索引正在删除文档信息。使用场景:查看全文索引中正在删除文档的情况,以便进行性能优化和故障排查。
INNODB_SYS_FOREIGN:显示InnoDB系统外键信息。使用场景:查看InnoDB系统外键的结构,以便进行备份恢复操作。
INNODB_BUFFER_PAGE_LRU:显示InnoDB缓冲池最近最少使用页面信息。使用场景:查看InnoDB缓冲池最近最少使用的页面,以便进行性能优化和故障排查。
INNODB_FT_DEFAULT_STOPWORD:显示InnoDB全文索引默认停用词信息。使用场景:查看全文索引中默认停用词的使用情况,以便进行性能优化和故障排查。
INNODB_SYS_TABLES:显示InnoDB系统表信息。使用场景:查看InnoDB系统表的结构,以便进行备份恢复操作。
INNODB_SYS_COLUMNS:显示InnoDB系统列信息。使用场景:查看InnoDB系统列的结构,以便进行备份恢复操作。
INNODB_FT_CONFIG:显示InnoDB全文索引配置信息。使用场景:查看全文索引的配置情况,以便进行性能优化和故障排查。
XTRADB_ZIP_DICT_COLS:显示XtraDB压缩字典列信息。使用场景:查看XtraDB压缩字典列的使用情况,以便进行性能优化和故障排查。
INNODB_SYS_INDEXES:显示InnoDB系统索引信息。使用场景:查看InnoDB系统索引的结构,以便进行备份恢复操作。
INNODB_SYS_VIRTUAL:显示InnoDB系统虚拟列信息。使用场景:查看InnoDB系统虚拟列的结构,以便进行备份恢复操作。
INNODB_CHANGED_PAGES:显示InnoDB更改过的页面信息。使用场景:查看InnoDB更改过的页面的情况,以便进行性能优化和故障排查。