10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.3 mb
PDF (A4)- 41.4 mb
PDF (RPM)- 39.6 mb
HTML下载(TGZ)- 9.3 mb
HTML下载(Zip)- 9.3 mb
HTML下载(RPM)- 7.8 mb
手册页(TGZ)- 262.1 kb
手册页(Zip)- 372.2 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

23.5.14.22 ndbinfo dict_obj_tree表

dict_obj_tree表提供了表信息的树状视图dict_obj_info表格这主要用于测试,但在可视化层次结构时也很有用NDB数据库对象。

dict_obj_tree表包含以下列:

  • 类型

    类型的DICT对象;加入在dict_obj_types获取对象类型的名称

  • id

    对象标识符;和iddict_obj_info

    对于磁盘数据撤消日志文件和数据文件,该值与LOGFILE_GROUP_NUMBER的列INFORMATION_SCHEMA。文件表;对于undo日志文件,它也与log_idndbinfo中的列logbuffers而且logspaces

  • 的名字

    对象的完全限定名;和fq_namedict_obj_info

    对于一张表,这是database_name/ def /table_name(与其相同parent_name);对于任何类型的索引,都采用以下形式NDB INDEX_美元index_id_CUSTOM

  • parent_type

    DICT该对象的父对象的对象类型;加入在dict_obj_types获取对象类型的名称

  • parent_id

    该对象的父对象的标识符;和dict_obj_info表的id

  • parent_name

    该对象的父对象的完全限定名称;和dict_obj_info表的fq_name

    对于表格来说,它具有这样的形式database_name/ def /table_name.对于索引,名称为sys / def /table_id/index_name.对于主键,它是sys / def /table_id/主,对于唯一键,则为sys / def /table_id/uk_name独特的美元

  • root_type

    DICT根对象的对象类型;加入在dict_obj_types获取对象类型的名称

  • root_id

    根对象的标识符;和dict_obj_info表的id

  • root_name

    根对象的完全限定名称;和dict_obj_info表的fq_name

  • 水平

    对象在层次结构中的级别

  • 路径

    对象的完整路径NDB对象层次结构;对象由右箭头分隔(表示为->),从左边的根对象开始

  • indented_name

    的名字以右箭头作为前缀(表示为->),在它前面有一些空格,这些空格对应于对象在层次结构中的深度

路径列对于获取给定对象的完整路径非常有用NDB对象在单行中显示,而indented_name列可用于获取所需对象的完整层次结构信息的树状布局。

例子:假设存在一个测验数据库中没有已命名的表t1在此数据库中,执行以下SQL语句:

创建表测试。t1( a INT PRIMARY KEY, b INT, UNIQUE KEY(b) ) ENGINE = NDB;

你可以通过下面的查询获取刚刚创建的表的路径:

mysql> SELECT path FROM ndbinfo。dict_obj_tree->WHERE name LIKE 'test%t1'; +-------------+ | path | +-------------+ | test/def/t1 | +-------------+ 1 row in set (0.14 sec)

在这样的查询中,你可以使用表的路径作为根名称来查看该表的所有依赖对象的路径:

mysql> SELECT path FROM ndbinfo。dict_obj_tree->WHERE root_name = 'test/def/t1'; +----------------------------------------------------------+ | path | +----------------------------------------------------------+ | test/def/t1 | | test/def/t1 -> sys/def/13/b | | test/def/t1 -> sys/def/13/b -> NDB$INDEX_15_CUSTOM | | test/def/t1 -> sys/def/13/b$unique | | test/def/t1 -> sys/def/13/b$unique -> NDB$INDEX_16_UI | | test/def/t1 -> sys/def/13/PRIMARY | | test/def/t1 -> sys/def/13/PRIMARY -> NDB$INDEX_14_CUSTOM | +----------------------------------------------------------+ 7 rows in set (0.16 sec)

控件的分层视图t1表及其所有依赖对象,执行类似于此查询,选择每个对象的缩进名称测试/ def / t1作为其根对象的名称:

SELECT indented_name FROM ndbinfodict_obj_tree->WHERE root_name = 'test/def/t1'; +----------------------------+ | indented_name | +----------------------------+ | test/def/t1 | | -> sys/def/13/b | | -> NDB$INDEX_15_CUSTOM | | -> sys/def/13/b$unique | | -> NDB$INDEX_16_UI | | -> sys/def/13/PRIMARY | | -> NDB$INDEX_14_CUSTOM | +----------------------------+ 7 rows in set (0.15 sec)

在使用Disk Data表时,请注意,在这种情况下,表空间或日志文件组被视为根对象。这意味着您必须知道与给定表相关联的任何表空间或日志文件组的名称,或者从其中获取此信息显示创建表然后是查询INFORMATION_SCHEMA。文件,或类似方式如下图所示:

mysql>创建表dt_1\G ***************************行***************************表:dt_1创建表:创建表' dt_1 ' (' member_id ' int unsigned NOT NULL AUTO_INCREMENT, ' last_name ' varchar(50) NOT NULL, ' first_name ' varchar(50) NOT NULL, ' dob ' date NOT NULL, ' joined ' date NOT NULL,主键(' member_id '),键' last_name ' (' last_name ', ' first_name ')) /*!50100表空间' ts_1 ' STORAGE DISK */ ENGINE=ndbcluster DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 1 row in set (0.00 sec) mysql> SELECT DISTINCT TABLESPACE_NAME, LOGFILE_GROUP_NAME -> FROM INFORMATION_SCHEMA。WHERE TABLESPACE_NAME='ts_1';+-----------------+--------------------+ | TABLESPACE_NAME | LOGFILE_GROUP_NAME  | +-----------------+--------------------+ | ts_1 | lg_1  | +-----------------+--------------------+ 1行集(0.00秒)

现在你可以像这样获取表、表空间和日志文件组的层次结构信息:

SELECT indented_name FROM ndbinfodict_obj_tree->WHERE root_name = 'test/def/dt_1'; +----------------------------+ | indented_name | +----------------------------+ | test/def/dt_1 | | -> sys/def/23/last_name | | -> NDB$INDEX_25_CUSTOM | | -> sys/def/23/PRIMARY | | -> NDB$INDEX_24_CUSTOM | +----------------------------+ 5 rows in set (0.15 sec) mysql> SELECT indented_name FROM ndbinfo.dict_obj_tree -> WHERE root_name = 'ts_1'; +-----------------+ | indented_name | +-----------------+ | ts_1 | | -> data_1.dat | | -> data_2.dat | +-----------------+ 3 rows in set (0.17 sec) mysql> SELECT indented_name FROM ndbinfo.dict_obj_tree -> WHERE root_name LIKE 'lg_1'; +-----------------+ | indented_name | +-----------------+ | lg_1 | | -> undo_1.log | | -> undo_2.log | +-----------------+ 3 rows in set (0.16 sec)

dict_obj_tree表为NDB 8.0.24新增。