vlambda博客
学习文章列表

mysql--系统自带数据库

版本:

mysql root@localhost:sakila> select @@version; +-----------+| @@version |+-----------+| 5.7.31 |+-----------+1 row in setTime: 0.009s

自带的数据库:

mysql root@localhost:mysql> show databases; +--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys |+--------------------+8 rows in setTime: 0.016s

information_schema 数据库:

提供对数据库元数据的访问 ,有关MySQL服务器的信息,例如数据库或表的名称,列的数据类型或访问权限。有时用于此信息的其他术语是 数据字典和 系统目录。

mysql root@localhost:information_schema> show tables; +---------------------------------------+| Tables_in_information_schema |+---------------------------------------+| CHARACTER_SETS || COLLATIONS || COLLATION_CHARACTER_SET_APPLICABILITY || COLUMNS || COLUMN_PRIVILEGES || ENGINES || EVENTS || FILES || GLOBAL_STATUS || GLOBAL_VARIABLES || KEY_COLUMN_USAGE || OPTIMIZER_TRACE || PARAMETERS || PARTITIONS || PLUGINS || PROCESSLIST || PROFILING || REFERENTIAL_CONSTRAINTS || ROUTINES || SCHEMATA || SCHEMA_PRIVILEGES || SESSION_STATUS || SESSION_VARIABLES || STATISTICS || TABLES || TABLESPACES || TABLE_CONSTRAINTS || TABLE_PRIVILEGES || TRIGGERS || USER_PRIVILEGES || VIEWS || INNODB_LOCKS || INNODB_TRX || INNODB_SYS_DATAFILES || INNODB_FT_CONFIG || INNODB_SYS_VIRTUAL || INNODB_CMP || INNODB_FT_BEING_DELETED || INNODB_CMP_RESET || INNODB_CMP_PER_INDEX || INNODB_CMPMEM_RESET || INNODB_FT_DELETED || INNODB_BUFFER_PAGE_LRU || INNODB_LOCK_WAITS || INNODB_TEMP_TABLE_INFO || INNODB_SYS_INDEXES || INNODB_SYS_TABLES || INNODB_SYS_FIELDS || INNODB_CMP_PER_INDEX_RESET || INNODB_BUFFER_PAGE || INNODB_FT_DEFAULT_STOPWORD || INNODB_FT_INDEX_TABLE || INNODB_FT_INDEX_CACHE || INNODB_SYS_TABLESPACES || INNODB_METRICS || INNODB_SYS_FOREIGN_COLS || INNODB_CMPMEM || INNODB_BUFFER_POOL_STATS || INNODB_SYS_COLUMNS || INNODB_SYS_FOREIGN || INNODB_SYS_TABLESTATS |+---------------------------------------+

|CHARACTER_SETS:  提供了有关可用字符集的信息。SHOW CHARACTER SET 语句中 也提供了字符集信息 。

|COLLATIONS: 提供有关每个字符集的排序规则的信息。SHOW COLLATION 语句中 也提供排序规则信息 

|COLLATION_CHARACTER_SET_APPLICABILITY: 指示什么字符集适用于什么排序规则等于该SHOW COLLATION语句显示的前两列 。

| COLUMNS: 提供有关表中列的信息。SHOW COLUMNS语句中 也提供列信息 

SHOW COLUMNS  FROM tbl_name  [FROM db_name]  [LIKE 'wild']

| COLUMN_PRIVILEGES:  提供有关列特权的信息。它从mysql.columns_priv系统表中获取其值 。

| ENGINES: 提供有关存储引擎的信息。这对于检查是否支持存储引擎或查看默认引擎特别有用。

SHOW ENGINES;

| EVENTS: 提供了有关事件管理器事件的信息SHOW EVENTS语句中 也提供事件信息 。

| FILES: 提供有关存储MySQL表空间数据的文件的信息。

| GLOBAL_STATUS: 提供了有关服务器状态变量的信息。内容对应于SHOW GLOBAL STATUS语句产生的信息

| GLOBAL_VARIABLES: 提供了有关服务器状态变量的信息。内容对应于SHOW GLOBAL VARIABLES语句产生的信息

| SESSION_STATUS: 提供了有关服务器状态变量的信息。内容对应于 SHOW SESSION STATUS语句产生的信息

| SESSION_VARIABLES: 提供了有关服务器状态变量的信息。内容对应于 SHOW SESSION VARIABLES语句产生的信息

| KEY_COLUMN_USAGE: 描述了哪些键列具有约束。

| OPTIMIZER_TRACE: 提供了优化器跟踪功能所生成的信息,用于跟踪的语句。要启用跟踪,请使用 optimizer_trace系统变量。

| PARAMETERS: 提供有关存储例程(存储过程和存储函数)的参数的信息,以及有关存储函数的返回值的信息。该PARAMETERS 表不包括内置SQL函数或用户定义函数(UDF)。参数信息类似于表中param_list列 的内容mysql.proc

| PARTITIONS: 提供有关表分区的信息。该表中的每一行都对应于分区表的单个分区或子分区。

| PLUGINS: 提供有关服务器插件的信息。

SHOW PLUGINS;

| PROCESSLIST: MySQL进程列表指示服务器内部正在执行的一组线程当前正在执行的操作。该表是过程信息的一种来源。

SHOW FULL PROCESSLIST

| PROFILING: 提供语句分析信息。除非profiling 会话变量设置为1,否则该表为空。

SHOW PROFILE FOR QUERY 2;

| REFERENTIAL_CONSTRAINTS: 提供有关外键的信息。

| ROUTINES: 提供有关存储例程(存储过程和存储函数)的信息。该表不包括内置SQL函数或用户定义函数(UDF)。

| SCHEMATA: 提供了有关数据库的信息。

SHOW DATABASES [LIKE 'wild']

| SCHEMA_PRIVILEGES: 提供有关架构(数据库)特权的信息。它从mysql.db系统表中获取其值。

| STATISTICS: 提供有关表索引的信息。

SHOW INDEX FROM tbl_name FROM db_name

| TABLES: 提供有关数据库中表的信息。

SHOW TABLE STATUS FROM db_name [LIKE 'wild'] SHOW FULL TABLES FROM db_name [LIKE 'wild']

| TABLESPACES:

| TABLE_CONSTRAINTS: 描述了哪些表具有约束。

| TABLE_PRIVILEGES: 提供有关表特权的信息。它从mysql.tables_priv系统表中获取其值 。

| TRIGGERS: 提供有关触发器的信息。

| USER_PRIVILEGES: 提供有关全局特权的信息。它从mysql.user系统表中获取其值 。

| VIEWS: 提供有关数据库中的视图的信息。

另外还有一系列的以 INNODB_开头的表,提供有关InnoDB存储引擎各个方面的元数据,状态信息和统计信息。这些表可用于监视正在进行的InnoDB 活动,在效率低下之前将其变为问题或对性能和容量问题进行故障排除。随着数据库变得越来越大,越来越繁忙,并在硬件容量的限制下运行,您需要监视和调整这些方面,以保持数据库的平稳运行。

mysql 数据库:

mysql root@localhost:mysql> show tables; +---------------------------+| Tables_in_mysql |+---------------------------+| columns_priv || db || engine_cost || event || func || general_log || gtid_executed || help_category || help_keyword || help_relation || help_topic || innodb_index_stats || innodb_table_stats || ndb_binlog_index || plugin || proc || procs_priv || proxies_priv || server_cost || servers || slave_master_info || slave_relay_log_info || slave_worker_info || slow_log || tables_priv || time_zone || time_zone_leap_second || time_zone_name || time_zone_transition || time_zone_transition_type || user |+---------------------------+

共有几类表:

授权系统表、对象信息系统表、日志系统表、服务器端帮助系统表、时区系统表、复制系统表、优化器系统表、其它系统表


授权系统表

这些系统表包含有关用户帐户及其所拥有特权的授权信息:

user:用户帐户,全局特权和其他非特权列。

db:数据库级特权。

host:已过时。从MySQL 5.6.7开始,MySQL安装操作不会创建该表。

tables_priv:表级特权。

columns_priv:列级特权。

procs_priv:存储过程和函数特权。

proxies_priv:代理用户权限。


对象信息系统表

这些系统表包含有关存储程序,用户定义函数和服务器端插件的信息:

event:使用安装的事件计划程序事件的注册表CREATE EVENT。如果使用该--skip-grant-tables选项启动服务器 ,则事件调度程序将被禁用,并且表中注册的事件不会运行。

func:使用安装的用户定义功能(UDF)注册表 CREATE FUNCTION。在正常启动过程中,服务器将加载在此表中注册的UDF。如果使用该--skip-grant-tables选项启动服务器 ,则表中注册的UDF不会被加载并且不可用。

plugin:使用安装的服务器端插件的注册表INSTALL PLUGIN。在正常启动过程中,服务器将加载在此表中注册的插件。如果使用该--skip-grant-tables选项启动服务器 ,则表中注册的插件将不会加载且不可用。。

proc:有关存储过程和功能的信息。


日志系统表

服务器使用以下系统表进行日志记录:

general_log:一般查询日志表。

slow_log:慢查询日志表。

日志表使用CSV存储引擎。


服务器端帮助系统表

这些系统表包含服务器端帮助信息:

help_category:有关帮助类别的信息。

help_keyword:与帮助主题相关的关键字。

help_relation:帮助关键字和主题之间的映射。

help_topic:帮助主题内容。


时区系统表

这些系统表包含时区信息:

time_zone:时区ID以及它们是否使用leap秒。

time_zone_leap_second:发生leap秒时。

time_zone_name:时区ID和名称之间的映射。

time_zone_transition, time_zone_transition_type:时区说明。


复制系统表

服务器使用以下系统表来支持复制:

ndb_binlog_index:NDB群集复制的二进制日志信息。

slave_master_info, slave_relay_log_info, slave_worker_info:用来存放复制的信息副本服务器上。

在此之前, 这些表使用自InnoDBMySQL 5.6.6起的存储引擎MyISAM


优化器系统表

innodb_index_stats和 innodb_table_stats系统表用于 InnoDB持续优化的统计数据。

这些表使用InnoDB存储引擎。

杂项系统表

其他系统表不属于以下类别:

firewall_users, firewall_whitelist如果安装了MySQL企业级防火墙,这些表格提供了防火墙使用的信息永久存储。

servers:由 FEDERATED存储引擎使用。


performance_schema数据库

用于收集数据库服务器性能参数。并且库里表的存储引擎均为PERFORMANCE_SCHEMA

accounts: 每个客户帐户的连接统计信息

cond_instances: 同步对象实例

events_stages_current: 当前阶段的事件

events_stages_history: 每个线程的最近阶段事件

events_stages_history_long: 总体上最近的舞台活动

events_stages_summary_by_account_by_event_name: 每个帐户和事件名称的登台事件

events_stages_summary_by_host_by_event_name: 根据主机名和事件名进行事件

events_stages_summary_by_thread_by_event_name: 每个线程和事件名称的阶段等待

events_stages_summary_by_user_by_event_name: 根据用户名和事件名进行事件

events_stages_summary_global_by_event_name: 每个事件名称的阶段等待

events_statements_current: 当前声明事件

events_statements_history: 每个线程的最新语句事件

events_statements_history_long: 整体最近的声明事件

events_statements_summary_by_account_by_event_name: 每个帐户和事件名称的语句事件

events_statements_summary_by_digest: 每个架构的语句事件和摘要值

events_statements_summary_by_host_by_event_name: 每个主机名和事件名的语句事件

events_statements_summary_by_program: 每个存储程序的语句事件

events_statements_summary_by_thread_by_event_name: 每个线程和事件名称的语句事件

events_statements_summary_by_user_by_event_name: 每个用户名和事件名的语句事件

events_statements_summary_global_by_event_name: 每个事件名称的语句事件

events_transactions_current: 当前交易事件

events_transactions_history: 每个线程的最新事务事件

events_transactions_history_long: 总体上最近的交易事件

events_transactions_summary_by_account_by_event_name: 每个帐户和事件名称的交易事件

events_transactions_summary_by_host_by_event_name: 每个主机名和事件名的事务事件

events_transactions_summary_by_thread_by_event_name: 每个线程和事件名称的事务事件

events_transactions_summary_by_user_by_event_name: 每个用户名和事件名的事务事件

events_transactions_summary_global_by_event_name: 每个事件名称的交易事件

events_waits_current: 当前的等待事件

events_waits_history: 每个线程的最新等待事件

events_waits_history_long: 总体上最近的等待事件

events_waits_summary_by_account_by_event_name: 每个帐户和事件名称的等待事件

events_waits_summary_by_host_by_event_name: 每个主机名和事件名的等待事件

events_waits_summary_by_instance: 每个实例的等待事件

events_waits_summary_by_thread_by_event_name: 每个线程和事件名称的等待事件

events_waits_summary_by_user_by_event_name: 每个用户名和事件名的等待事件

events_waits_summary_global_by_event_name: 每个事件名称的等待事件

file_instances: 文件实例

file_summary_by_event_name: 每个事件名称的文件事件

file_summary_by_instance: 每个文件实例的文件事件

global_status: 全局状态变量

global_variables: 全局系统变量

host_cache: 来自内部主机缓存的信息

hosts: 每个客户端主机名的连接统计信息

memory_summary_by_account_by_event_name: 每个帐户和事件名称的内存操作

memory_summary_by_host_by_event_name: 每个主机和事件名称的内存操作

memory_summary_by_thread_by_event_name: 每个线程和事件名称的内存操作

memory_summary_by_user_by_event_name: 每个用户和事件名称的内存操作

memory_summary_global_by_event_name: 每个事件名称的全局内存操作

metadata_locks: 元数据锁定和锁定请求

mutex_instances: 互斥体同步对象实例

objects_summary_global_by_type: 对象摘要

performance_timers: 哪些事件计时器可用

prepared_statements_instances: 准备的语句实例和统计信息

replication_applier_configuration: 副本上事务处理程序的配置参数

replication_applier_status: 副本上事务处理应用程序的当前状态

replication_applier_status_by_coordinator: SQL或协调器线程应用程序状态

replication_applier_status_by_worker: 工作线程应用程序状态(除非副本为多线程,否则为空)

replication_connection_configuration: 用于连接到源的配置参数

replication_connection_status: 到源的连接的当前状态

rwlock_instances: 锁定同步对象实例

session_account_connect_attrs: 当前会话的连接属性

session_connect_attrs: 所有会话的连接属性

session_status: 当前会话的状态变量

session_variables: 当前会话的系统变量

setup_actors: 如何初始化对新前台线程的监视

setup_consumers: 可以为其存储事件信息的使用者

setup_instruments: 可以为其收集事件的检测对象的类

setup_objects: 应该监视哪些对象

setup_timers: 当前事件计时器

socket_instances: 活动连接实例

socket_summary_by_event_name: 套接字等待和每个事件名称的I/O

socket_summary_by_instance: 套接字等待和每个实例的I/O

status_by_account: 每个帐户的会话状态变量

status_by_host: 每个主机名的会话状态变量

status_by_thread: 每个会话的会话状态变量

status_by_user: 每个用户名的会话状态变量

table_handles: 表锁和锁请求

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_variables_by_thread: 每个线程的用户定义变量

users: 每个客户端用户名的连接统计信息

variables_by_thread: 每个会话的会话系统变量

sys数据库

包括表和触发器,视图以及存储过程和函数。

mysql root@localhost:sys> show tables like 'sys_config'; +----------------------------+| Tables_in_sys (sys_config) |+----------------------------+| sys_config |+----------------------------+

只有这一个表,其它的都是视图、触发器、存储过程等。

sys_config:配置选项,每个选项一行。通过更新此表进行的配置更改会在客户端会话和服务器重新启动后继续存在。