的文件
表提供有关存储MySQL表空间数据的文件的信息。
的文件
表提供以下信息:Innodb.
数据文件。在“NDB集群”中,该表还提供了存储NDB集群磁盘数据表的文件信息。的附加信息Innodb.
,请参阅innodb笔记,在本节稍后;有关NDB Cluster的其他信息,请参见NDB笔记.
的文件
Table有以下列:
FILE_ID
为
Innodb.
:表空间ID,也称为space_id
或fil_space_t: id
.为
NDB
:文件标识符。FILE_ID
列值是自动生成的。FILE_NAME
为
Innodb.
:数据文件的名称。file-pher-table和一般表格有一个的.ibd
文件扩展名。Undo表空间以撤销
.系统表空间是前缀的ibdata
.全局临时表空间是前缀的ibtmp
.文件名包括文件路径,它可能是相对于MySQL数据目录(值datadir.
系统变量)。为
NDB
:创建的撤消日志文件的名称创建日志文件组
或ALTER LOGFILE GROUP.
或者创建的数据文件创建表空间
或修改表空间
.在NDB 8.0中,文件名显示为相对路径;对于撤消日志文件,这个路径是相对于目录的
;对于数据文件,它是相对于目录的DataDir
/ ndb_NodeId
_FS / LG.
.这意味着,例如,创建的数据文件的名称DataDir
/ ndb_NodeId
_fs / TSALTER表空间TS添加数据文件'DATA_2.DAT'初始大小256m
显示为./data_2.dat.
.FILE_TYPE
为
Innodb.
:表空间文件类型。有三种可能的文件类型Innodb.
文件。表空间
是任何保存表、索引或其他形式用户数据的系统、常规或每表一个文件的表空间文件的文件类型。暂时的
是临时表空间的文件类型。UNDO日志
是保存撤消记录的undo表空间的文件类型。为
NDB
:其中一个值UNDO日志
或数据文件
.在NDB 8.0.13之前,表空间
也是一个可能的价值。tablespace_name.
与文件相关联的表空间的名称。
为
Innodb.
:一般的表空间名称与创建时指定的相同。每个表的文件表空间名称如下所示:
.的schema_name
/table_name
Innodb.
系统表空间名称是innodb_system
.全局临时表空间名称是Innodb_temporary
.默认的undo表空间名称是Innodb_undo_001.
和Innodb_undo_002.
.用户创建的撤消表空间名称在创建时指定。table_catalog.
此值始终为空。
TABLE_SCHEMA
这总是如此
零
.TABLE_NAME
这总是如此
零
.LOGFILE_GROUP_NAME
为
Innodb.
:这总是零
.为
NDB
:日志文件或数据文件所属的日志文件组名称。LOGFILE_GROUP_NUMBER
为
Innodb.
:这总是零
.为
NDB
:对于“Disk Data undo log file”,表示该日志文件所属的自动生成的日志文件组ID号。这和id
列ndbinfo.dict_obj_info.
表和log_id
列ndbinfo.logspaces.logspaces.
和ndbinfo.logspaces.logspaces.
此撤消日志文件的表。引擎
为
Innodb.
:这个值始终是Innodb.
.为
NDB
:这个值始终是ndbcluster
.FULLTEXT_KEYS
这总是如此
零
.DELETED_ROWS
这总是如此
零
.UPDATE_COUNT
这总是如此
零
.FREE_EXTENTS
为
Innodb.
:当前数据文件中的完全自由范围数。为
NDB
:文件尚未使用的范围。total_extents.
为
Innodb.
:当前数据文件中已使用的完整区数。文件末尾的任何部分区段都不计算。为
NDB
:分配给文件的总区段数。EXTENT_SIZE
为
Innodb.
:具有4KB,8KB或16KB页面大小的文件的范围大小为1048576(1MB)。范围大小为2097152字节(2MB),对于具有32kb页面大小的文件,对于具有64KB页面大小的文件,4194304(4MB)。文件
没有报告Innodb.
页面大小。属性定义页面大小innodb_page_size.
系统变量。范围大小信息也可以从中检索innodb_tablespaces.
表在哪里files.file_id = innodb_tablespaces.space.
.为
NDB
:文件的大小为字节文件。initial_size.
为
Innodb.
:文件的初始大小,以字节为单位。为
NDB
:文件的大小以字节为单位。这与中使用的值相同initial_size.
条款的创建日志文件组
,ALTER LOGFILE GROUP.
,创建表空间
, 或者修改表空间
语句用于创建文件。MAXIMUM_SIZE
为
Innodb.
:文件中允许的最大字节数。这个值是零
除预定义的系统表空间数据文件外的所有数据文件。系统表空间文件的最大大小是由innodb_data_file_path
.最大全局临时表空间文件大小由innodb_temp_data_file_path.
.一个零
预定义系统表空间数据文件的值表示未明确定义文件大小限制。为
NDB
:此值始终与initial_size.
价值。autoextend_size.
表空间的自动扩展大小。为
NDB
,autoextend_size.
总是零
.创建_time.
这总是如此
零
.LAST_UPDATE_TIME
这总是如此
零
.LAST_ACCESS_TIME
这总是如此
零
.RECOVER_TIME
这总是如此
零
.transaction_counter.
这总是如此
零
.版本
为
Innodb.
:这总是零
.为
NDB
:文件的版本号。ROW_FORMAT
为
Innodb.
:这总是零
.为
NDB
:其中一个固定
或动态
.table_rows.
这总是如此
零
.AVG_ROW_LENGTH
这总是如此
零
.DATA_LENGTH
这总是如此
零
.max_data_length.
这总是如此
零
.index_length.
这总是如此
零
.data_free.
为
Innodb.
:整个表空间的可用空间(以字节为单位)的总量。包含系统表空间和临时表表空间的预定义系统表空间可能具有一个或多个数据文件。为
NDB
:这总是零
.CREATE_TIME
这总是如此
零
.更新时间
这总是如此
零
.CHECK_TIME
这总是如此
零
.校验和
这总是如此
零
.状态
为
Innodb.
:这个值是正常的
默认。Innodb.
文件/ per-table表空间可能会报告进口
,这表明表空间尚不可用。为
NDB
:对于“NDB集群磁盘数据文件”,此值始终为正常的
.额外的
为
Innodb.
:这总是零
.为
NDB
: (NDB 8.0.15及更高版本)对于撤消日志文件,这一列显示撤消日志缓冲区的大小;对于数据文件,它总是零.在接下来的几段中提供了更详细的解释。NDBCLUSTER
在集群中的每个数据节点上存储每个数据文件和每个撤消日志文件的副本。在NDB 8.0.13及以后版本中,文件
对于每个这样的文件,表只包含一行。假设你在一个有4个数据节点的NDB集群上运行以下两个语句:2 .创建一个LOGFILE组3 .创建表空间myts
成功运行这两个语句后,您应该看到类似于此查询的此处的结果
文件
表:mysql> SELECT LOGFILE_GROUP_NAME, FILE_TYPE, EXTRA -> FROM INFORMATION_SCHEMA。FILES -> WHERE ENGINE = 'ndbcluster';+--------------------+-----------+--------------------------+ | 额外LOGFILE_GROUP_NAME | FILE_TYPE | | +--------------------+-----------+--------------------------+ | mygroup | UNDO日志| UNDO_BUFFER_SIZE = 8388608 |组| mygroup功能| | NULL | +--------------------+-----------+--------------------------+
undo log buffer size信息在NDB 8.0.13中被无意删除,但在NDB 8.0.15中被恢复。(Bug #92796, Bug #28800252)
在NDB 8.0.13之前,
文件
表包含在每个数据节点上的每个文件中的每个文件的行,以及其撤消缓冲区的大小。在这些版本中,相同查询的结果包含每个数据节点的一行,如下所示:+--------------------+-----------+-----------------------------------------+ | 额外LOGFILE_GROUP_NAME | FILE_TYPE | | +--------------------+-----------+-----------------------------------------+ | mygroup | UNDO日志| CLUSTER_NODE = 5; UNDO_BUFFER_SIZE = 8388608 |组| mygroup | UNDO日志| CLUSTER_NODE = 6; UNDO_BUFFER_SIZE = 8388608 |组| mygroup | | UNDO日志组CLUSTER_NODE = 7; UNDO_BUFFER_SIZE = 8388608 | | mygroup | UNDO日志| CLUSTER_NODE = 8; UNDO_BUFFER_SIZE = 8388608 |组| mygroup功能| | CLUSTER_NODE = 5 |组| mygroup功能| | CLUSTER_NODE = 6 |组| mygroup功能| | CLUSTER_NODE = 7 |组| mygroup功能| | CLUSTER_NODE = 8 | +--------------------+-----------+-----------------------------------------+
下列注意事项适用于Innodb.
数据文件。
报告的数据
文件
报道了Innodb.
用于打开文件的内存缓存。通过对比,innodb_datafiles.
报告来自Innodb.
sys_datafiles.
内部数据字典表。报告的数据
文件
包括全局临时表空间数据。此数据不可用Innodb.
sys_datafiles.
内部数据字典表,因此不报告innodb_datafiles.
.撤消表空间数据
文件
当单独的undo表空间存在时,它们在MySQL 8.0中是默认的以下查询返回与。相关的所有数据
Innodb.
表空间。选择file_id,file_name,file_type,total_nexents,sime_size,initial_size,maximare_size,autoctexend_size,data_free,from Information_schema.files的状态='InnoDB'\ g
的
文件
表提供“磁盘数据”的信息文件只要;您无法使用它来确定个人的磁盘空间分配或可用性NDB
表。但是,可以看到为每个分配多少空间NDB
表格具有存储在磁盘上的数据以及可用于存储该表的磁盘上的数据的保留程度ndb_desc.的
创建_time.
,LAST_UPDATE_TIME
,LAST_ACCESSED
值由操作系统报告,并不由此提供NDB
存储引擎。操作系统没有提供任何值,这些列显示零
.之间的差异
总区段
和FREE_EXTENTS
列是文件中当前使用的范围:SELECT TOTAL_EXTENTS - FREE_EXTENTS AS extents_used FROM INFORMATION_SCHEMA。file WHERE FILE_NAME = './myfile.dat';
的值乘以该差值,即可近似得到文件所使用的磁盘空间量
EXTENT_SIZE
列,它给出了字母表中文件的大小:选择(total_extents - free_extents)* sende_size为bytes_used from Information_schema.files,其中file_name ='./myfile.dat';
同样,您可以通过乘法估算给定文件中仍有可用的空间量
FREE_EXTENTS
通过EXTENT_SIZE
:SELECT FREE_EXTENTS * EXTENT_SIZE AS bytes_free FROM INFORMATION_SCHEMA。file WHERE FILE_NAME = './myfile.dat';
重要的前面查询产生的字节值仅为近似值,并且它们的精度与值成反比
EXTENT_SIZE
.也就是说,越大越好EXTENT_SIZE
变成,近似的准确性较低。同样重要的是要记住,一旦使用了一个区段,就不能在不删除它所属的数据文件的情况下再次释放它。这意味着删除磁盘数据表不是释放磁盘空间。
在NDB 8.0.13之前,存在额外的行
文件
表中创建了一个日志文件组零
在里面FILE_NAME
柱子。在NDB 8.0.13及更高版本中,该行 - 不再显示与任何文件 - 不再显示,并且有必要查询ndbinfo.logspaces.logspaces.
表以获取撤消日志文件使用信息。查看此表的描述以及NDB集群磁盘数据对象,以获取更多信息。此项目中剩余讨论仅适用于NDB 8.0.12及更早版本。因为行
零
在里面FILE_NAME
列,值的值FILE_ID
列总是0
,的FILE_TYPE
列总是UNDO日志
,以及状态
列总是正常的
.的价值引擎
列总是ndbcluster
.的
FREE_EXTENTS
列显示属于给定日志文件组的所有撤销文件可用的空闲区段的总数,该日志文件组的名称和编号显示在LOGFILE_GROUP_NAME
和LOGFILE_GROUP_NUMBER
分别列。假设您的NDB集群上没有现有的日志文件组,您使用以下语句创建了一个:
MySQL>创建日志文件组LG1添加undofile.dat'itial_size = 16m undo_buffer_size = 1m引擎= ndb;
你可以看到这个
零
的文件
表:mysql> SELECT DISTINCT FILE_NAME AS File, FREE_EXTENTS AS Free, TOTAL_EXTENTS AS Total, EXTENT_SIZE AS Size, INITIAL_SIZE AS Initial FROM INFORMATION_SCHEMA.FILES;+--------------+---------+---------+------+----------+ | 免费文件| | | |初始大小。总 | +--------------+---------+---------+------+----------+ | undofile.dat零| 4194304 | 4 | 4194304 | |零零| | 4184068 | | 4 |空 | +--------------+---------+---------+------+----------+
可用于撤消日志记录的空闲区段的总数总是略小于
total_extents.
由于维护撤消文件所需的开销,日志文件组中所有撤消文件的列值。可以通过将第二个撤消文件添加到日志文件组,然后重复上一个查询来看文件
表:mysql> ALTER LOGFILE GROUP lg1 ADD UNDOFILE 'undofile02.dat' INITIAL_SIZE = 4M ENGINE = NDB;mysql> SELECT DISTINCT FILE_NAME AS File, FREE_EXTENTS AS Free, TOTAL_EXTENTS AS Total, EXTENT_SIZE AS Size, INITIAL_SIZE AS Initial FROM INFORMATION_SCHEMA.FILES;+----------------+---------+---------+------+----------+ | 免费文件| | | |初始大小。总 | +----------------+---------+---------+------+----------+ | undofile.dat零| 4194304 | 4 | 4194304 | | | undofile02.dat零| 1048576 | 4 | 1048576 | |零零| | 5223944 | | 4 |空 | +----------------+---------+---------+------+----------+
可以通过将初始大小乘以初始大小的自由扩展名的数量来近似:
MySQL>选择Free_extents作为“自由扩展名”,Free_extents * Lears_size从Information_schema.files中的“免费字节”,其中logfile_group_name ='lg1'和file_name为null;+--------------+------------+ | 免费区段|免费字节 | +--------------+------------+ | 5223944 | 5223944 | +--------------+------------+
如果您创建了NDB群集磁盘数据表,然后将一些行插入其中,您可以看到撤消日志记录的大约需要多少空间,例如:
mysql>创建表空间ts1添加数据文件'data1.dat'使用logfile组lg1 initial_size 512m引擎= ndb;MySQL>创建表DD(C1 INT NOULL主键,C2 INT,C3日期)表空间TS1存储盘引擎= NDB;MySQL>插入DD值(null,1234567890,'2007-02-02'),(null,1126789005,'2007-02-03'),(null,1357924680,'2007-02-04'),(null,1642097531,'2007-02-05');MySQL>选择Free_extents作为“自由扩展名”,Free_extents * Lears_size从Information_schema.files中的“免费字节”,其中logfile_group_name ='lg1'和file_name为null;+ ------------- + ------------ + |自由范围|免费字节|+ ------------- + ------------ + |5207565 |20830260 | +--------------+------------+
在NDB 8.0.13之前,存在额外的行
文件
每个NDB群集磁盘数据表空间的表。因为它没有对应于实际文件,所以它被删除在NDB 8.0.13中。这个行有零
对于价值的价值FILE_NAME
列,值的值FILE_ID
列总是0
,的FILE_TYPE
列总是表空间
,的状态
列总是正常的
,和价值引擎
列总是NDBCLUSTER
.在NDB 8.0.13及更高版本中,您可以使用该信息获取有关磁盘数据表空间的信息ndb_desc实用程序。有关更多信息,请参见NDB集群磁盘数据对象以及描述的描述ndb_desc.
有关附加信息以及创建、删除和获取有关NDB集群磁盘数据对象信息的示例,请参见NDB集群磁盘数据表.