10bet网址
MySQL Information Schema.
相关的文档10bet官方网站 下载此摘录
PDF (Ltr)- 0.7MB.
PDF(A4)- 0.7MB.
HTML下载(TGZ)- 98.8 kb
HTML下载(邮政编码)- 111.0 kb


MySQL Information Schema./Information_Schema概述/ The INFORMATION_SCHEMA FILES表

4.15 Information_schema文件表

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

文件表提供以下信息:Innodb.数据文件。在“NDB集群”中,该表还提供了存储NDB集群磁盘数据表的文件信息。的附加信息Innodb.,请参阅innodb笔记,在本节稍后;有关NDB Cluster的其他信息,请参见NDB笔记

文件Table有以下列:

  • FILE_ID

    Innodb.:表空间ID,也称为space_idfil_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 / TS.这意味着,例如,创建的数据文件的名称ALTER表空间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号。这和idndbinfo.dict_obj_info.表和log_idndbinfo.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.

    表空间的自动扩展大小。为NDBautoextend_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  | +--------------------+-----------+-----------------------------------------+

笔记

  • 文件是一个非标准的Information_Schema.表格

  • 截至MySQL 8.0.21,您必须拥有过程查询该表的权限。

innodb笔记

下列注意事项适用于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表格具有存储在磁盘上的数据以及可用于存储该表的磁盘上的数据的保留程度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_NAMELOGFILE_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集群磁盘数据表