文档首页
MySQL NDB 集群 API 开发者指南
相关文档 下载本手册
PDF (US Ltr) - 3.6Mb
PDF (A4) - 3.6Mb


2.3.26 对象类

本节提供有关 Object 类的信息,该类包含有关数据库对象(如表和索引)的元信息。Object 子类对这些数据库对象和其他数据库对象进行建模。

对象类概述

父类

NdbDictionary

子类

DatafileEventIndexLogfileGroupTableTablespaceUndofileHashMapForeignKey

方法

下表列出了 Object 类的公共方法以及每个方法的用途或用法

表 2.71 对象类方法和说明

名称 说明
getObjectId() 获取对象的 ID
getObjectStatus() 获取对象的状态
getObjectVersion() 获取对象的版本

所有这 3 个方法都是纯虚方法,并在 TableIndexEvent 子类中根据需要重新实现。

类型

这些是 Object 类的公共类型

表 2.72 对象类类型和说明

名称 说明
FragmentType 对象(表或索引)使用的分片类型
State 对象的状态(是否可用)
Status 对象的状态(是否可用)
Store 对象是临时存储还是永久存储
Type 对象的类型(Object 表示哪种表、索引或其他数据库对象)

Object::FragmentType

本节提供有关 FragmentType 类型的信息,该类型描述 Object 实例的分片类型。

说明

此参数指定表或索引中的数据如何在集群的数据节点之间分布,即每个节点的分片数。表越大,应使用的分片数就越多。请注意,所有分片副本都计为一个分片。对于表,默认值为 FragAllMedium。对于唯一哈希索引,默认值取自基础表,当前无法更改。

枚举值

下表显示了 FragmentType 的可能值及其说明

表 2.73 FragmentType 值和说明

名称 说明
FragUndefined 分片类型未定义或为默认值
FragAllMedium 每个节点两个分片
FragAllLarge 每个节点四个分片
DistrKeyHash 分布式哈希键
DistrKeyLin 分布式线性哈希键
UserDefined 用户定义
HashMapPartition 哈希映射分区

Object::getObjectStatus()

说明

此方法检索调用它的对象的状态。

签名
virtual Status getObjectStatus
    (
      void
    ) const
参数

.

返回值

返回 Object 的当前 Status

Object::getObjectId()

说明

此方法检索对象的 ID。

签名
virtual int getObjectId
    (
      void
    ) const
参数

.

返回值

对象 ID,一个整数。

Object::getObjectVersion()

说明

此方法获取对象的当前版本。

签名
virtual int getObjectVersion
    (
      void
    ) const
参数

.

返回值

对象的版本号,一个整数。

Object::PartitionBalance

本节提供有关 PartitionBalance 数据类型的信息。

说明

此类型枚举使用 setPartitionBalance() 时可供选择的分区平衡设置(分片计数类型)。这也是 getPartitionBalance() 返回的类型

枚举值

下表显示了 PartitionBalance 的可能值及其说明

表 2.74 Object::PartitionBalance 数据类型值和说明

名称 说明
PartitionBalance_ForRPByLDM 每个节点的每个 LDM 使用一个分片
PartitionBalance_ForRAByLDM 每个节点组的每个 LDM 使用一个分片
PartitionBalance_ForRPByNode 每个节点使用一个分片
PartitionBalance_ForRAByNode 每个节点组使用一个分片
PartitionBalance_Specific 使用 setPartitionBalance() 确定的设置

在 NDB 7.4 及更早版本中,这称为 FragmentCountType,可以采用以下值之一:FragmentCount_OnePerLDMPerNodeFragmentCount_OnePerLDMPerNodeGroupFragmentCount_OnePerNodeFragmentCount_OnePerNodeGroupFragmentCount_Specific。这些值对应于上表中显示的值,顺序相同。

Object::State

本节提供有关 State 类型的信息,该类型对 Object 的状态进行建模。

说明

此参数提供了对象的状态。*状态*是指对象是否已定义以及是否处于可用状态。数值用于 ndbinfo 信息数据库中的 dict_obj_infohash_maps 表的 state 列中。

枚举值

下表显示了 State 的可能值及其说明

表 2.75 对象状态类型值和说明

ID 名称 说明
1 StateUndefined 未定义
StateOffline 离线,不可用
2 StateBuilding 正在构建(例如还原?),不可用(?)
3 StateDropping 正在脱机或正在删除;不可用
4 StateOnline 在线,可用
5 StateBackup 在线,正在备份,可用
6 StateBroken 已损坏;应删除并重新创建

Object::Status

本节提供有关 Status 类型的信息,该类型对 Object 的状态进行建模。

说明

读取对象的 Status 可以判断它在 NDB 内核中是否可用。

枚举值

下表显示了 Status 的可能值及其说明

表 2.76 对象状态数据类型值和说明

名称 说明
新建 对象仅存在于内存中,尚未在 NDB 内核中创建
已更改 对象已在内存中修改,必须在 NDB 内核中提交才能使更改生效
已检索 对象存在,并且已从 NDB 内核读取到主内存中
无效 对象已失效,不应再使用
已变更 表已在 NDB 内核中变更,但仍可使用

对象::存储

本节提供有关 Store 类型的的信息,该类型描述 对象 的持久性。

说明

读取此值可以告诉我们对象是临时的还是永久的。

枚举值

下表显示了 Store 的可能值及其说明

表 2.77 对象存储数据类型值和说明

名称 说明
存储未定义 对象未定义
临时存储 临时存储;对象或数据将在系统重启时删除
永久存储 对象或数据是永久性的;它已被记录到磁盘

对象::类型

本节提供有关 Type 类型的的信息。

说明

Type 对象可以是几种不同类型的索引、触发器、表空间等之一。

枚举值

下表显示了 Type 的可能值及其说明

表 2.78 对象类型数据类型值和说明

名称 说明
类型未定义 未定义
系统表 系统表
用户表 用户表(可能是临时的)
唯一哈希索引 唯一(但无序)哈希索引
有序索引 有序(但不唯一)索引
哈希索引触发器 索引维护(内部
索引触发器 索引维护(内部
订阅触发器 备份或复制(内部
只读约束 触发器(内部
表空间 表空间
日志文件组 日志文件组
数据文件 数据文件
撤消文件 撤消文件
重组触发器 触发器
哈希映射 哈希映射
外键 外键
外键父触发器 外键父表上的触发器
外键子触发器 外键子表上的触发器

有关 ForeignKeyFKParentTriggerFKChildTrigger 的更多信息,请参阅 第 2.3.6 节 “外键类”