本文涉及:MySQL安装后自带的4个数据库:information_schema、
performance_schema、sys、mysql的作用及其中各个表所存储的数据含义
information_schema
information_schema是mysql自带的一个信息数据库,其保存着关于mysql服务器所维护的所有其他数据库的信息,如数据库名,数据库的表,表栏的数据类型与访问权限等
也就是说当你建立一个新的数据库,或者在已有的数据库中增删改表的话,都会记录在information_schema库中
相关表:
- character_sets:存储数据库相关字符集信息(memory存储引擎)
- collations:字符集对应的排序规则
- collation_character_set_applicability:字符集和连线校对的对应关系
- schema_privileges:提供了数据库的相关权限
- table_privileges: 提供的是表权限相关信息
- column_privileges :表授权的用户的权限
- user_privileges:提供的是用户表权限相关信息
- columns:存储所有表的所有字段信息
- innodb_sys_columns :innodb的元数据
- engines :引擎类型,是否支持这个引擎,描述,是否支持事物,是否支持分布式事务,是否能够支持事物的回滚点
- events :记录mysql中的事件,类似于定时作业
- files :这张表提供了有关在mysql的表空间中的数据存储的文件的信息,文件存储的位置
- parameters :参数表存储了一些存储过程和方法的参数,以及存储过程的返回值信息
- plugins :mysql的插件信息,是否是活动状态等信息
- routines:关于存储过程和方法function的一些信息
- schemata:这个表提供了实例下有多少个数据库,而且还有数据库默认的字符集
- triggers :触发器的信息
- views :视图的信息
- referential_constraints:这个表提供的外键相关的信息
- table_constraints :这个表提供的是 相关的约束信息
- innodb_sys_foreign_cols :innodb关于外键的元数据信息
- key_column_usage :数据库中所有有约束的列
- global_status:系统状态
- global_variables:系统变量
- session_status:session状态
- session_variables:session变量
- partitions :mysql分区表相关的信息
- processlist:当前线程列表
- innodb_cmp_per_index,innodb_cmp_per_index_reset:关于压缩innodb信息表的时候的相关信息
- innodb_cmpmem ,innodb_cmpmem_reset:innodb的压缩页的buffer pool信息
- innodb_buffer_pool_stats :表提供有关innodb 的buffer pool相关信息
- innodb_buffer_page_lru,innodb_buffer_page :维护了innodb lru list的相关信息
- innodb_buffer_page :buffer里面缓冲的页数据
- innodb_sys_datafiles :这张表就是记录的表的文件存储的位置和表空间的一个对应关系
- innodb_temp_table_info :所有的innodb的所有用户使用到的信息
- innodb_metrics :提供innodb的各种的性能指数
- innodb_sys_virtual :表存储的是innodb表的虚拟列的信息
- innodb_cmp,innodb_cmp_reset:存储的是关于压缩innodb信息表的时候的相关信息
- tables:数据库中表的信息
- tablespaces:活跃表空间
- innodb_sys_tables:表格的格式和存储特性,包括行格式,压缩页面大小位级别的信息
- statistics:关于表的索引信息
- innodb_sys_indexes:innodb表的索引的相关信息
- innodb_sys_tablestats:mysql数据库的统计信息
- innodb_sys_fields :innodb的表索引字段信息,以及字段的排名
- innodb_ft_config :这张表存的是全文索引的信息
- innodb_ft_default_stopword:stopword 的信息
- innodb_ft_index_cache :这张表存放的是插入前的记录信息,也是为了避免dml时候昂贵的索引重组
- optimizer_trace :提供的是优化跟踪功能产生的信息
- profiling:服务器执行语句的工作情况
- innodb_ft_being_deleted:nnodb_ft_deleted的一个快照
- innodb_locks: innodb现在获取的锁
- innodb_lock_waits:系统锁等待相关信息,包含了阻塞的一行或者多行的记录,而且还有锁请求和被阻塞改请求的锁信息等
- innodb_trx:包含了所有正在执行的的事物相关信息,而且包含了事物是否被阻塞或者请求锁
performance_schema
主要用于收集数据库服务器性能参数
相关表:
- setup_actors:配置用户纬度的监控,默认监控所有用户
- setup_consumers:配置events的消费者类型,即收集的events写入到哪些统计表中
- setup_instruments:配置具体的instrument
- setup_objects:配置监控对象,默认对mysql、performance_schema和information_schema中的表都不监控,而其它所有表都监控。
- setup_timers:配置每种类型指令的统计时间单位
- cond_instances:系统中使用的条件变量的对象
- file_instances:系统中打开了文件的对象,包括ibdata文件,redo文件,binlog文件,用户的表文件等
- mutex_instances:系统中使用互斥量对象的所有记录
- rwlock_instances: 系统中使用读写锁对象的所有记录
- socket_instances:活跃会话对象实例
- events_waits_current:记录了当前线程等待的事件
- events_waits_history:记录了每个线程最近等待的10个事件
- events_waits_history_long:记录了最近所有线程产生的10000个事件
- events_stages_current:记录了当前线程所处的执行阶段
- events_stages_history:记录了当前线程所处的执行阶段10条历史记录
- events_stages_history_long:记录了当前线程所处的执行阶段10000条历史记录
- events_statements_current:最顶层的请求,SQL语句或是COMMAND
- users:记录用户连接数信息
- hosts:记录了主机连接数信息
- accounts:记录了用户主机连接数信息
- events_waits_summary_global_by_event_name:按等待事件类型聚合
- events_waits_summary_by_instance:按等待事件对象聚合
- events_waits_summary_by_thread_by_event_name:按每个线程和事件来统计
- events_stages_summary_global_by_event_name:按事件阶段类型聚合
- events_stages_summary_by_thread_by_event_name:按每个线程和事件来阶段统计
- events_statements_summary_by_digest:按照事件的语句进行聚合
- events_statements_summary_global_by_event_name:按照事件的语句进行聚合
- events_statements_summary_by_thread_by_event_name:按照线程和事件的语句进行聚合
- file_summary_by_instance:按事件类型统计(物理IO维度)
- file_summary_by_event_name:具体文件统计(物理IO维度)
- table_io_waits_summary_by_table:根据wait/io/table/sql/handler,聚合每个表的I/O操作(逻辑IO纬度)
- table_io_waits_summary_by_index_usage:按索引维度统计
- table_lock_waits_summary_by_table:聚合了表锁等待事件
- socket_summary_by_instance:socket聚合统计表
- performance_timers:系统支持的统计时间单位
- threads:监视服务端的当前运行的线程
sys
Sys库是一个简单版的performance_schema
相关表:
- sys_config:用于sys schema库的配置
相关视图(以_*结尾的代表多个表):
- host_* : 以ip分组相关的统计信息
- innodb_* : innodb buffer 相关信息
- io_* : 数据内不同维度展的io相关的信息
- memory_* : 以ip,连接,用户,分配的类型分组及总的占用显示内存的使用
- metrics : db的内部的统计值
- processlist : 线程相关的信息
- ps_check_lost_instrumentation: 没有工具统计的一些变量
- schema _*: 表结构相关的信息
- session : 用户连接相关的信息
- statement_analysis : 基于语句的统计信息
- statements_*: 出错的语句,进行全表扫描、运行时间超长等
- user_* : 和host_开头的相似,只是以用户分组统计
- wait_*: 等待事件
- waits_* : 以ip,用户分组统计出来的一些延迟事件
mysql
存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息
相关表:
- user:用户表
- db:存储了某个用户对一个数据库的权限
- host:存储了某个主机对数据库的操作权限
- tables_priv:可以对单个表进行权限设置
- procs_priv:可以对存储过程和存储函数进行权限设置
- columns_priv:可以对单个列进行权限设置
- server_cost:CPU的代价模型
- engine_cost:IO的代价模型
- event:记录MySQL中的事件
- func:记录MySQL中的自定义函数
- general_log:所有的sql执行日志(一般不开启)
- gtid_executed:二进制日志
- help_category:关于帮助主题类别的信息
- help_keyword:与帮助主题相关的关键字信息
- help_relation:帮助关键字信息和主题信息之间的映射
- help_topic:帮助主题的详细内容
- innodb_index_stats: innodb中索引的统计数据
- innodb_table_stats: innodb中表的统计数据
- ndb_binlog_index:binlog相关信息
- plugin:插件相关的表
- proc:基础信息相关的表
- proxies_priv:数据库用户权限表
- 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:时间相关表
推荐阅读
- SpringCloud学习系列汇总
- 为什么一线大厂面试必问redis,有啥好问的?
- 多线程面试必备基础知识汇总
- Java集合源码分析汇总-JDK1.8
- Linux常用命令速查-汇总篇
- JVM系列文章汇总
相关推荐
在MySQL数据库管理与维护的过程中,修改字符集是一个常见的需求,特别是在需要处理多语言或特定编码格式的情况下。本文将详细介绍如何解决“MySQL修改字符集默认问题”,包括修改步骤、注意事项以及可能遇到的问题...
在MySQL数据库中,设置默认时间为当前时间是一项常见且实用的功能,尤其在处理具有时间戳字段的数据表时。本文将深入探讨如何在创建或修改数据表时,利用MySQL的特性来自动将时间字段设置为当前时间,同时也会讲解...
配置MySQL链接库通常包括以下几个步骤: 1. 安装MySQL:通过操作系统自带的包管理器(如apt-get for Ubuntu, yum for CentOS)或从MySQL官网下载安装包进行安装。 2. 配置环境变量:设置`LD_LIBRARY_PATH`(Linux)...
使用MySQL Connector/C++进行数据库操作主要包括以下几个核心概念: 1. `sql::mysql::MySQL_Driver`:这是驱动程序类,负责创建数据库连接。通过调用其`get_instance()`静态方法获取单例实例。 2. `sql::Connection`...
TIMESTAMP 类型有以下几个特点: * 自动更新当前时间:当插入或更新记录时,TIMESTAMP 字段的值将自动更新为当前时间。 * 只有第一个 TIMESTAMP 字段自动更新:如果一个表中有多个 TIMESTAMP 字段,只有第一个字段...
- 修改默认的端口号,避免与MySQL8.x冲突,比如将MySQL5.x的默认3306端口改为3307。 - 创建一个新的数据目录,如`C:\ProgramData\MySQL\MySQL Server 5.x\Data`,以便与8.x版本分开。 - 完成安装后,配置系统环境...
以下是几个关键参数的解释: 1. `port`:指定MySQL服务器监听的端口,默认为3306,用于客户端连接。 2. `socket`:定义了套接字文件的路径,用于本地连接,提高了连接速度。 3. `back_log`:表示操作系统监听队列...
这里的URL `"jdbc:mysql://localhost:3306/mydatabase"` 指定了数据库服务器的位置、端口号(默认为3306)和数据库名。"username"和"password"是登录数据库的凭证。 有了连接后,你可以创建`Statement`或`...
MySQL内部包含几个特殊的系统数据库,如: information_schema:提供关于所有数据库、表、列、索引等元数据信息,是查询数据库结构的标准接口。 mysql:存储MySQL自身的系统信息,如用户权限、服务器配置、事件...
2. libssl和libcrypto:用于加密和安全通信,因为MySQL默认使用SSL进行连接。 3. libz:提供数据压缩功能,有些MySQL数据可能经过压缩存储。 当在x86架构上打包应用时,这些库通常需要被正确地链接和包含,特别是...
mysql8 用户初始表(user),可以用于账密码忘记,用户表被篡改等情况恢复用户信息(密码是:root)
安装过程通常包括以下几个步骤: 1. **下载与解压**:首先,下载并解压缩"mysql-5.5.30-win32"文件,你会得到一系列的安装文件和文档。 2. **安装服务**:运行`setup.exe`启动安装向导,按照提示配置MySQL服务器,...
而 Innodb 支持所有的事务隔离级别,默认使用 Repeatable Read,不存在这个问题。 * 外键支持:虽然的 Cluster 版本已经支持外键,但性能有问题(因为外键所关联的记录可能在别的分片节点中),所以建议去掉所有外键...
* 生产环境:主库的 Server Name 命名规范为:mx+系统标识符(系统标识符要尽量体现系统特征且字符数不超过 4 个不少于 3 个并在 rsms 系统里唯一)。 * 测试环境:测试环境主库的 Server Name 命名规范为:tn+生产...
安装完成后,可以通过以下几种方式验证MySQL是否成功安装: 1. **检查MySQL服务状态**: ```bash systemctl status mysqld ``` 如果看到输出中有“active (running)”字样,则表示MySQL服务正在运行。 2. **...
在代码生成助手的核心类 `db` 中,可以看到以下几个关键方法: 1. `__construct()`:构造函数,用于建立与MySQL服务器的连接。在这里,你可以设置服务器地址(默认为`localhost`)、用户名(默认为`root`)和密码...
通常,这样的压缩包会包含所有必要的可执行文件、配置文件、库文件以及可能的安装脚本,用户只需要解压并按照指南运行即可启动MySQL服务。 在使用MySQL免安装包时,用户需要注意以下几点: 1. **环境准备**:确保...
在使用MySQL绿色版3306时,你需要了解以下几个关键知识点: 1. **配置文件**:MySQL的配置文件通常名为`my.ini`或`my.cnf`,在绿色版中可能已经包含了预设的配置。你可以根据实际需求调整这些参数,比如数据存储...
在麒麟V10操作系统上安装MySQL数据库的过程涉及到几个关键步骤,这包括使用麒麟软件商店安装基础版本以及通过命令行进行更深入的配置。下面将详细解释这些步骤,并讨论在麒麟V10上安装MySQL时可能遇到的问题及解决...
安装 MySQL 的步骤可以分为以下几个部分: ### 步骤 1:解压安装包 使用 tar 命令解压缩 mysql-5.7.15-linux-glibc2.5-x86_64.tar.gz 文件,生成 mysql-5.7.15-linux-glibc2.5-x86_64 目录。 ### 步骤 2:重命名...