对 MySQL 数据库实例数据目录下的目录做一个解读
# ls -l /var/lib/mysql/data/
total 290912
drwx------. 2 mysql mysql 4096 Aug 29 2019 mysql
drwx------. 2 mysql mysql 4096 Aug 29 2019 performance_schema
drwx------. 2 mysql mysql 6 Aug 29 2019 test
目录 /var/lib/mysql/data/
是 MySQL 数据目录的子目录。
这个目录通常包含 MySQL 数据库实例的实际数据文件和目录。
total 290912
drwx------. 2 mysql mysql 4096 Aug 29 2019 mysql
drwx------. 2 mysql mysql 4096 Aug 29 2019 performance_schema
drwx------. 2 mysql mysql 6 Aug 29 2019 test
mysql
:这是目录的名称。mysql
目录通常包含 MySQL 的系统数据库和相关表。performance_schema
:这是 Performance Schema 数据库的目录。Performance Schema 用于收集数据库服务器的性能数据和统计信息,帮助进行性能分析。test
:这是一个数据库的目录,通常包含名为test
的数据库的表和数据文件。test
数据库是一个默认的测试数据库,通常用于测试和实验。
这些目录下会有数据库表、索引、日志等文件,用于存储实际的数据和管理信息。
对 MySQL 数据目录下的文件、目录的解读
# ls -l /var/lib/mysql/data/
total 290912
-rw-rw----. 1 mysql mysql 56 Aug 29 2019 auto.cnf
-rw-rw----. 1 mysql mysql 146800640 Sep 6 15:18 ibdata1
-rw-rw----. 1 mysql mysql 50331648 Sep 6 15:18 ib_logfile0
-rw-rw----. 1 mysql mysql 50331648 Sep 6 11:27 ib_logfile1
-rw-rw----. 1 mysql mysql 50331648 Sep 6 15:19 ib_logfile2
-rw-rw----. 1 mysql mysql 133 Sep 6 15:18 master.info
drwx------. 2 mysql mysql 4096 Aug 29 2019 mysql
-rw-rw---- 1 mysql mysql 214 Aug 9 15:18 mysqld-relay-bin.00001
-rw-rw---- 1 mysql mysql 280 Aug 9 15:18 mysqld-relay-bin.00002
drwx------. 2 mysql mysql 4096 Aug 29 2019 performance_schema
-rw-rw----. 1 mysql mysql 69 Sep 6 15:18 relay-log.info
-rw-rw---- 1 mysql mysql 52 Aug 9 15:18 slave-relay-bin.index
drwx------. 2 mysql mysql 6 Aug 29 2019 test
# ls -l /var/lib/mysql/data/test/
rw-rw----. 1 mysql mysql 61 Aug 30 2019 /var/lib/mysql/data/3gol/db.opt
rw-rw----. 1 mysql mysql 13026 Aug 30 2019 /var/lib/mysql/data/test/t_test.frm
rw-rw----. 1 mysql mysql 20522729472 Sep 6 15:20 /var/lib/mysql/data/test/t_test.ibd
MySQL 数据目录下的文件和文件夹是 MySQL 数据存储和操作的核心部分。
以下是对你提供的目录结构和文件的详细解读:
根目录文件和文件夹(/var/lib/mysql/data/
)
-
auto.cnf
:- 类型: 文件
-
权限:
-rw-rw----
- 大小: 56 字节
- 描述: 存储自动生成的服务器唯一标识符(UUID)。MySQL 使用此 UUID 来识别当前的服务器实例。
-
ibdata1
:- 类型: 文件
-
权限:
-rw-rw----
- 大小: 146800640 字节(约 140 MB)
- 描述: InnoDB 存储引擎的系统表空间文件,包含了 InnoDB 的数据和索引。这个文件是 InnoDB 存储引擎的核心数据文件之一。
-
ib_logfile0
,ib_logfile1
,ib_logfile2
:- 类型: 文件
-
权限:
-rw-rw----
- 大小: 每个文件 50331648 字节(约 48 MB)
-
描述: InnoDB 重做日志文件(redo log files),用于记录事务日志和崩溃恢复。
ib_logfile0
和ib_logfile1
是默认的日志文件,ib_logfile2
是额外的日志文件(在一些配置中)。
-
master.info
:- 类型: 文件
-
权限:
-rw-rw----
- 大小: 133 字节
- 描述: 存储主服务器的状态信息,用于记录主从复制的状态信息。
-
mysql
:- 类型: 文件夹
-
权限:
drwx------
-
描述: 存储 MySQL 系统数据库(如
mysql
、performance_schema
、information_schema
和sys
数据库)的数据文件。mysql
文件夹通常包括 MySQL 的用户权限、系统变量等信息。
-
mysqld-relay-bin.00001
,mysqld-relay-bin.00002
:- 类型: 文件
-
权限:
-rw-rw----
- 大小: 每个文件的大小未显示(通常很小)
- 描述: 这些是从服务器的中继日志文件(relay log files),用于记录从主服务器接收到的所有更改日志,用于在从服务器上重放。
-
performance_schema
:- 类型: 文件夹
-
权限:
drwx------
- 描述: 存储性能模式(Performance Schema)的数据文件。Performance Schema 提供了对 MySQL 性能的监控和分析功能。
-
relay-log.info
:- 类型: 文件
-
权限:
-rw-rw----
- 大小: 69 字节
- 描述: 存储中继日志的状态信息,记录当前处理中继日志的位置。
-
slave-relay-bin.index
:- 类型: 文件
-
权限:
-rw-rw----
- 大小: 52 字节
- 描述: 记录中继日志文件的索引,用于从服务器确定要处理的日志文件。
-
test
:- 类型: 文件夹
-
权限:
drwx------
-
描述: 存储用户数据库
test
的数据文件。通常用于测试或开发数据库。
test
文件夹内的文件
-
db.opt
:- 类型: 文件
-
权限:
-rw-rw----
- 大小: 61 字节
-
描述: 存储数据库
test
的选项文件,包含数据库的特定配置,如字符集设置。
-
t_test.frm
:- 类型: 文件
-
权限:
-rw-rw----
- 大小: 13026 字节(约 13 KB)
-
描述: 表结构文件,包含表
t_test
的定义(表的列、索引等)。
-
t_test.ibd
:- 类型: 文件
-
权限:
-rw-rw----
- 大小: 20522729472 字节(约 19.1 GB)
-
描述: 表
t_test
的数据文件,存储表数据和索引(如果使用了 InnoDB 存储引擎并且启用了独立表空间)。
这些文件和文件夹是 MySQL 数据目录的核心部分,理解它们的功能和作用对于管理 MySQL 数据库和进行故障排除非常重要。
简要解读MySQL mysql库下各个表的作用和用途
mysql
数据库是 MySQL 系统数据库的一部分,包含了与 MySQL 服务器自身的配置和管理相关的各种信息。
以下是 mysql
数据库下各个表的简要解读:
表解读
-
columns_priv.frm, columns_priv.MYD, columns_priv.MYI
- 功能: 存储列级权限信息。
- 用途: 记录对特定列的权限设置,如哪个用户可以访问或修改哪些列。
-
db.frm, db.MYD, db.MYI
- 功能: 存储数据库级的权限信息。
- 用途: 记录用户对数据库的访问权限,比如哪个用户可以访问或操作哪些数据库。
-
event.frm, event.MYD, event.MYI
- 功能: 存储事件调度任务的信息。
- 用途: 记录和管理计划任务(事件)的设置和执行信息。
-
func.frm, func.MYD, func.MYI
- 功能: 存储用户自定义函数的信息。
- 用途: 记录数据库中的存储函数,包括函数的定义和属性。
-
general_log.CSM, general_log.CSV, general_log.frm
- 功能: 存储一般查询日志的配置和数据。
- 用途: 记录所有执行的 SQL 查询,用于审计和调试。
-
help_category.frm, help_category.MYD, help_category.MYI
- 功能: 存储帮助类别的信息。
- 用途: 提供 MySQL 内置帮助系统的分类信息。
-
help_keyword.frm, help_keyword.MYD, help_keyword.MYI
- 功能: 存储帮助关键字的信息。
- 用途: 记录帮助文档的关键字和描述,用于帮助系统的搜索功能。
-
help_relation.frm, help_relation.MYD, help_relation.MYI
- 功能: 存储帮助关系的信息。
- 用途: 记录帮助文档中的条目关系,用于建立文档之间的连接。
-
help_topic.frm, help_topic.MYD, help_topic.MYI
- 功能: 存储帮助主题的信息。
- 用途: 记录帮助文档的具体内容和主题,用于提供详细的帮助信息。
-
innodb_index_stats.frm, innodb_index_stats.ibd
- 功能: 存储 InnoDB 索引的统计信息。
- 用途: 记录 InnoDB 存储引擎中索引的使用情况和性能统计数据。
-
innodb_table_stats.frm, innodb_table_stats.ibd
- 功能: 存储 InnoDB 表的统计信息。
- 用途: 记录 InnoDB 存储引擎中表的使用情况和性能统计数据。
-
ndb_binlog_index.frm, ndb_binlog_index.MYD, ndb_binlog_index.MYI
- 功能: 存储 NDB 存储引擎的二进制日志索引信息。
- 用途: 记录 NDB 存储引擎中二进制日志的索引数据。
-
plugin.frm, plugin.MYD, plugin.MYI
- 功能: 存储插件的信息。
- 用途: 记录 MySQL 插件的相关信息,包括插件的名称和描述。
-
proc.frm, proc.MYD, proc.MYI
- 功能: 存储存储过程的信息。
- 用途: 记录数据库中的存储过程的定义和属性。
-
procs_priv.frm, procs_priv.MYD, procs_priv.MYI
- 功能: 存储存储过程的权限信息。
- 用途: 记录用户对存储过程的访问权限设置。
-
proxies_priv.frm, proxies_priv.MYD, proxies_priv.MYI
- 功能: 存储代理用户的权限信息。
- 用途: 记录代理用户的访问权限设置,通常用于设置代理功能的权限。
-
servers.frm, servers.MYD, servers.MYI
- 功能: 存储服务器信息。
- 用途: 记录 MySQL 服务器的配置信息。
-
slave_master_info.frm, slave_master_info.ibd
- 功能: 存储复制主服务器的信息。
- 用途: 记录复制关系的主服务器信息,主要用于设置和管理主从复制。
-
slave_relay_log_info.frm, slave_relay_log_info.ibd
- 功能: 存储从服务器的中继日志信息。
- 用途: 记录从服务器的中继日志的状态和位置信息。
-
slave_worker_info.frm, slave_worker_info.ibd
- 功能: 存储复制工作线程的信息。
- 用途: 记录用于复制的工作线程的信息,主要用于复制过程的管理。
-
slow_log.CSM, slow_log.CSV, slow_log.frm
- 功能: 存储慢查询日志的配置和数据。
- 用途: 记录执行时间较长的 SQL 查询,用于分析和优化性能。
-
tables_priv.frm, tables_priv.MYD, tables_priv.MYI
- 功能: 存储表级权限信息。
- 用途: 记录用户对表的访问权限设置,如哪个用户可以访问或操作哪些表。
-
time_zone.frm, time_zone_leap_second.frm, time_zone_name.frm, time_zone_transition.frm, time_zone_transition_type.frm
- 功能: 存储与时区相关的信息。
- 用途: 记录时区、闰秒、时区名称、时区过渡和时区过渡类型的详细信息,用于支持和管理不同的时间设置。
-
user.frm, user.MYD, user.MYI
- 功能: 存储用户账户的信息。
- 用途: 记录 MySQL 用户的详细信息,包括用户名、密码和账户权限等。
总结
这些表主要用于存储与 MySQL 服务器本身及其管理相关的各种配置信息和权限设置。
它们提供了管理用户、权限、日志、插件、存储过程、复制等功能所需的数据。
简要解读MySQL performance_schema 库下各个表的作用和用途
简要解读 performance_schema
库下各个表的作用和用途。
这些表是用于存储和分析 MySQL 服务器的性能数据的,具体包括:
表解读
accounts.frm
存储与用户账户相关的信息,用于性能分析。cond_instances.frm
记录条件变量的实例信息。这是用于监控等待和锁相关的条件。db.opt
存储与数据库的性能模式配置相关的信息。events_stages_current.frm
当前活动的阶段事件信息。用于跟踪和分析当前查询执行的阶段。events_stages_history.frm
记录历史阶段事件信息,用于分析过去的查询阶段。events_stages_history_long.frm
存储长期历史阶段事件信息,适用于长期分析。events_stages_summary_by_account_by_event_name.frm
按账户和事件名称汇总阶段事件的统计信息。events_stages_summary_by_host_by_event_name.frm
按主机和事件名称汇总阶段事件的统计信息。events_stages_summary_by_thread_by_event_name.frm
按线程和事件名称汇总阶段事件的统计信息。events_stages_summary_by_user_by_event_name.frm
按用户和事件名称汇总阶段事件的统计信息。events_stages_summary_global_by_event_name.frm
全局汇总阶段事件的统计信息。events_statements_current.frm
当前活动的 SQL 语句信息,用于实时监控。events_statements_history.frm
记录历史 SQL 语句信息,供分析历史查询性能使用。events_statements_history_long.frm
存储长期历史 SQL 语句信息,适用于长期查询分析。events_statements_summary_by_account_by_event_name.frm
按账户和事件名称汇总 SQL 语句的统计信息。events_statements_summary_by_digest.frm
按 SQL 语句摘要汇总的统计信息。events_statements_summary_by_host_by_event_name.frm
按主机和事件名称汇总 SQL 语句的统计信息。events_statements_summary_by_thread_by_event_name.frm
按线程和事件名称汇总 SQL 语句的统计信息。events_statements_summary_by_user_by_event_name.frm
按用户和事件名称汇总 SQL 语句的统计信息。events_statements_summary_global_by_event_name.frm
全局汇总 SQL 语句的统计信息。events_waits_current.frm
当前活动的等待事件信息,用于实时监控。events_waits_history.frm
记录历史等待事件信息,供历史分析使用。events_waits_history_long.frm
存储长期历史等待事件信息,用于长期分析。events_waits_summary_by_account_by_event_name.frm
按账户和事件名称汇总等待事件的统计信息。events_waits_summary_by_host_by_event_name.frm
按主机和事件名称汇总等待事件的统计信息。events_waits_summary_by_instance.frm
按实例汇总等待事件的统计信息。events_waits_summary_by_thread_by_event_name.frm
按线程和事件名称汇总等待事件的统计信息。events_waits_summary_by_user_by_event_name.frm
按用户和事件名称汇总等待事件的统计信息。events_waits_summary_global_by_event_name.frm
全局汇总等待事件的统计信息。file_instances.frm
记录文件实例的信息,用于分析文件相关的性能数据。file_summary_by_event_name.frm
按事件名称汇总文件相关的性能信息。file_summary_by_instance.frm
按文件实例汇总性能信息。host_cache.frm
存储主机缓存的信息,用于优化主机相关的性能分析。hosts.frm
存储与主机相关的性能信息。mutex_instances.frm
记录互斥量的实例信息,涉及线程同步和锁。objects_summary_global_by_type.frm
全局汇总对象的统计信息,按类型分类。performance_timers.frm
记录性能计时器的信息,用于精确测量性能。rwlock_instances.frm
记录读写锁的实例信息,用于监控锁竞争。session_account_connect_attrs.frm
存储与会话账户连接相关的属性信息。session_connect_attrs.frm
存储会话连接的属性信息。setup_actors.frm
记录性能模式的执行者(如线程)的配置信息。setup_consumers.frm
存储性能模式的消费者(如监控工具)的配置信息。setup_instruments.frm
配置性能模式中使用的各种工具和仪器的信息。setup_objects.frm
配置性能模式中使用的各种对象的信息。setup_timers.frm
配置性能模式中使用的计时器的信息。socket_instances.frm
记录套接字实例的信息,用于网络性能监控。socket_summary_by_event_name.frm
按事件名称汇总套接字相关的性能信息。socket_summary_by_instance.frm
按套接字实例汇总性能信息。table_io_waits_summary_by_index_usage.frm
按索引使用情况汇总表的 I/O 等待信息。table_io_waits_summary_by_table.frm
按表汇总的 I/O 等待信息。table_lock_waits_summary_by_table.frm
按表汇总的锁等待信息。threads.frm
记录线程的性能信息,用于分析线程相关的活动。users.frm
存储与用户相关的性能信息。
总结
这些表主要用于监控和分析 MySQL 服务器的性能。
它们提供了有关当前和历史查询、等待事件、锁、文件 I/O、网络连接等的详细信息。通过这些表,你可以深入了解 MySQL 的内部运行状态,识别性能瓶颈,并优化数据库系统的性能。