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


2.3.27 表类

本节提供有关 Table 类的信息,该类在 NDB API 中模拟数据库表。

表类概述

父类

NdbDictionary

子类

描述

Table 类表示 NDB Cluster 数据库中的一个表。此类扩展了 Object 类,该类又 是 NdbDictionary 类的内部类。

可以使用 NDB API 创建独立于 MySQL 服务器的表。但是,通常不建议这样做,因为以这种方式创建的表无法被 MySQL 服务器看到。类似地,可以使用 Table 方法修改现有表,但这些更改(除了重命名表外)对 MySQL 是不可见的。

方法

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

表 2.79 表类方法和描述

名称 描述
Table() 类构造函数
~Table() 析构函数
addColumn() 向表添加列
aggregate() 计算表的聚合数据
equal() 将表与另一个表进行比较
getColumn() 从表中获取列(按名称)
getDefaultNoPartitionsFlag() 检查是否正在使用默认的分区数
getFragmentCount() 获取此表的片段数
getExtraMetadata() 获取此表的额外元数据
getForceVarPart() 表是否强制分配可变部分
getFragmentData() 获取表片段数据(ID、状态和节点组)
getFragmentDataLen() 获取表片段数据的长度
getFragmentNodes() 获取片段所在的节点的 ID
getFragmentType() 获取表的 FragmentType
getFrmData() 获取来自表 .FRM 文件的数据;在 NDB 8.0.27 中已弃用
getFrmLength() 获取表的 .FRM 文件的长度;在 NDB 8.0.27 中已弃用
getHashMap() 获取表的哈希映射。
getKValue() 获取表的 KValue
getLinearFlag() 获取表的线性哈希标志的当前设置
getLogging() 检查是否为该表启用了将日志记录到磁盘
getMaxLoadFactor() 获取表的最大负载因子
getMaxRows() 获取此表可能包含的最大行数
getMinLoadFactor() 获取表的最小负载因子
getMinRows() 获取表中的最小行数(用于计算分区)
getName() 获取表的名称
getNoOfAutoIncrementColumns() 获取表中自动递增列的数量
getNoOfColumns() 获取表中的列数
getNoOfPrimaryKeys() 获取表主键中的列数
getObjectId() 获取表的对象 ID
getObjectStatus() 获取表的对象状态
getObjectType() 在 NDB 7.5.0 中删除(错误 #47960,错误 #11756088)
getObjectVersion() 获取表的对象版本
getPartitionBalance() 获取用于此表的(片段计数类型)分区平衡(NDB 7.5 及更高版本)
getPartitionBalanceString() 获取用于此表的(作为字符串)分区平衡(NDB 7.5 及更高版本)
getPartitionId() 从哈希值获取分区 ID
getPrimaryKey() 获取表的名称
getRangeListData() 获取 RANGELIST 数组
getRangeListDataLen() 获取表 RANGELIST 数组的长度
getRowChecksumIndicator() 检查是否已设置行校验和指示器
getRowGCIIndicator() 检查是否已设置行 GCI 指示器
getRowGCIIndicator() 检查是否已设置行 GCI 指示器
getRowSizeInBytes() 获取此表的行大小(以字节为单位)
getSingleUserMode() 获取此表的 SingleUserMode
getTableId() 获取表的 ID
getTablespace() 获取包含此表的表空间
getTablespaceData() 获取包含该表的表空间的 ID 和版本
getTablespaceDataLen() 获取表的表空间数据的长度
getTablespaceNames() 获取表片段中使用的表空间的名称
hasDefaultValues() 确定表是否具有使用默认值的任何列
setDefaultNoPartitionsFlag() 切换是否应为表使用默认的分区数
setExtraMetadata() 设置此表的额外元数据
setForceVarPart() 强制表分配可变部分
getFragmentCount() 获取此表的片段数
setFragmentData() 设置片段 ID、节点组 ID 和片段状态
setFragmentType() 设置表的 FragmentType
setFrm() 设置要用于此表的 .FRM 文件;在 NDB 8.0.27 中已弃用
setHashMap() 设置表的哈希映射。
setKValue() 设置 KValue
setLinearFlag() 设置表的线性哈希标志
setLogging() 切换将表日志记录到磁盘
setMaxLoadFactor() 设置表的最大负载因子 (MaxLoadFactor)
setMaxRows() 设置表中的最大行数
setMinLoadFactor() 设置表的最小负载因子 (MinLoadFactor)
setPartitionBalance() 设置此表的分区平衡(碎片计数类型)(NDB 7.5 及更高版本)
setName() 设置表的名称
setObjectType() 在 NDB 7.5.0 中删除(错误 #47960,错误 #11756088)
setRangeListData() 设置 LISTRANGE 分区数据
setRowChecksumIndicator() 设置行校验和指示符
setRowGCIIndicator() 设置行 GCI 指示符
setSingleUserMode() 设置此表的 SingleUserMode
setStatusInvalid()
setTablespace() 设置用于此表的表空间
setTablespaceData() 设置表空间 ID 和版本
setTablespaceNames() 设置碎片的表空间名称
validate() 在创建新表之前验证其定义

类型

Table 类定义了一个公共类型 SingleUserMode

此类的赋值 (=) 运算符被重载,因此它始终执行深层复制。

与其他数据库对象一样,使用 NDB API 创建的 Table 对象以及对现有表的属性更改在 MySQL 中不可见。例如,如果您使用 Table::addColumn() 向表添加新列,则 MySQL 无法看到新列。与表相关的此规则的唯一例外是,使用 Table::setName() 更改现有 NDB 表的名称在 MySQL 中可见。

计算表大小。 当计算数据存储时,应将所有属性的大小(每个属性至少占用 4 个字节)以及 12 个字节的开销加在一起。可变大小的属性的大小为 12 个字节加上实际数据存储部分,并根据可变部分的大小增加额外的开销。例如,考虑一个包含 5 个属性的表:一个 64 位属性,一个 32 位属性,两个 16 位属性和一个包含 64 个 8 位属性的数组。此表每个记录占用的内存量是以下内容的总和

  • 64 位属性占用 8 个字节

  • 32 位属性占用 4 个字节

  • 两个 16 位属性占用 8 个字节,每个属性由于右对齐而占用 4 个字节

  • 数组占用 64 个字节(64 * 每个数组元素 1 个字节)

  • 12 个字节的开销

这总共是每记录 96 个字节。此外,您应该假设页面头和浪费空间的分配约为 2% 的开销。因此,100 万条记录应占用 96 MB,并且页面头和其他开销约为 2 MB。向上取整后为 100 MB。

Table::addColumn()

描述

向表添加一列。

签名
void addColumn
    (
      const Column& column
    )
参数

对要添加到表的列的引用。

返回值

此方法的返回类型为 void,但它确实会创建原始 Column 对象的副本。

Table::aggregate()

描述

此方法计算表的聚合数据。在表被创建并通过 getTableId() 检索之前,需要此方法才能使诸如 getNoOfPrimaryKeys() 之类的聚合方法正常工作。

签名
int aggregate
    (
      struct NdbError& error
    )
参数

NdbError 对象的引用。

返回值

一个整数,如果成功,其值为 0,如果表处于不一致状态,则为 -1。在后一种情况下,error 也将被设置。

Table 构造函数

描述

创建 Table 实例。 Table 构造函数有两个版本,一个用于创建新实例,另一个是复制构造函数。

使用此方法在 NDB API 中创建的表无法从 MySQL 访问。

签名

新实例

Table
    (
      const char* name = ""
    )

复制构造函数

Table
    (
      const Table& table
    )
参数

对于新实例,要创建的表的名称。对于副本,对要复制的表的引用。

返回值

一个 Table 对象。

析构函数
virtual ~Table()

Table::equal()

描述

此方法用于将 Table 的一个实例与另一个实例进行比较。

签名
bool equal
    (
      const Table& table
    ) const
参数

对要与当前实例比较的 Table 对象的引用。

返回值

如果两个表相同,则为 true,否则为 false

Table::getColumn()

描述

此方法用于获取列定义,给定列的索引或名称。

签名

此方法可以使用列 ID 或列名称调用,如下所示

Column* getColumn
    (
      const int AttributeId
    )

Column* getColumn
    (
      const char* name
    )
参数

两者之一:列在表中的索引(如列的 getColumnNo() 方法返回的那样),或列的名称。

返回值

指向具有指定索引或名称的列的指针。如果没有这样的列,则此方法返回 NULL

Table::getDefaultNoPartitionsFlag()

描述

此方法用于确定是否对表使用默认的分区数。

签名
Uint32 getDefaultNoPartitionsFlag
    (
      void
    ) const
参数

.

返回值

一个 32 位无符号整数。

Table::getExtraMetadata()

描述

获取并解包此表的额外元数据。

此方法是在 NDB 8.0 中添加的。

签名
int getExtraMetadata
    (
      Uint32& version,
      void** data,
      Uint32* length
    ) const
参数

此方法采用以下三个参数

  • version: 根据惯例,如 NDB 集群代码中所用,1 表示额外元数据包含一个 .frm 文件(blob 数据),如 NDB 7.6 及更早版本中;2 表示它是 NDB 8.0 中的序列化字典信息。这些值实际上是任意的,并且是特定于应用程序的。

  • data: 作为元数据检索的存储数据。

  • length: 存储数据的长度(元数据)。

返回值

如果成功,则返回 0,如果失败,则返回任何其他值。非零值应解释为错误类型的错误代码。

Table::getForceVarPart()

描述

无论表是否实际上包含任何可变大小的列,是否强制表分配可变大小的部分。这需要允许随后在线向表添加列(参见 在 NDB 集群中使用 ALTER TABLE 进行在线操作)。

签名
bool getForceVarPart
    (
      void
    ) const
参数

.

返回值

当强制表分配可变大小的部分时,为 true

Table::getFragmentCount()

描述

此方法获取表中的碎片数。

签名
Uint32 getFragmentCount
    (
      void
    ) const
参数

.

返回值

表碎片数,作为 32 位无符号整数。

Table::getFragmentData()

描述

此方法获取表的碎片数据(ID、状态和节点组)。

签名
const void* getFragmentData
    (
      void
    ) const
参数

.

返回值

指向要读取的数据的指针。

Table::getFragmentDataLen()

描述

获取要读取的表碎片数据的长度(以字节为单位)。

签名
Uint32 getFragmentDataLen
    (
      void
    ) const
参数

.

返回值

要读取的字节数,作为 32 位无符号整数。

Table::getFragmentNodes()

描述

此方法检索存储给定碎片的节点列表。

签名
Uint32 getFragmentNodes
    (
      Uint32 fragmentId,
      Uint32* nodeIdArrayPtr,
      Uint32 arraySize
    ) const
参数

此方法采用以下三个参数

  • fragmentId: 所需碎片的 ID。

  • nodeIdArrayPtr: 指向包含此碎片的节点的节点 ID 数组的指针。

    注意

    通常,主碎片是此数组中的条目 0。

  • arraySize: 包含节点 ID 的数组的大小。如果此值小于碎片数,则仅将前 arraySize 个条目写入此数组。

返回值

返回值 0 表示错误;否则,此值是表碎片数,作为 32 位无符号整数。

Table::getFragmentType()

描述

此方法获取表的碎片类型。

签名
FragmentType getFragmentType
    (
      void
    ) const
参数

.

返回值

一个 Object::FragmentType 值。

Table::getFrmData()

注意

此功能已弃用,应避免使用。它可能会在 NDB 集群的未来版本中被删除。

描述

获取与表关联的 .FRM 文件中的数据。

MySQL 8.0 和 NDB 8.0 不再使用 .FRM 文件,而是使用 MySQL 数据字典来存储表元数据;因此,此方法从 NDB 8.0.27 开始已弃用,并且可能会在将来的 NDB 版本中被删除。对于读取和写入表元数据,请改用 getExtraMetadata()setExtraMetadata()

签名
const void* getFrmData
    (
      void
    ) const
参数

.

返回值

指向 .FRM 数据的指针。

Table::getFrmLength()

注意

此功能已弃用,应避免使用。它可能会在 NDB 集群的未来版本中被删除。

描述

获取表的 .FRM 文件数据的长度(以字节为单位)。

MySQL 8.0 和 NDB 8.0 不再使用 .FRM 文件,而是使用 MySQL 数据字典来存储表元数据;因此,此方法从 NDB 8.0.27 开始已弃用,并且可能会在将来的 NDB 版本中被删除。对于读取和写入表元数据,请改用 getExtraMetadata()setExtraMetadata()

签名
Uint32 getFrmLength
    (
      void
    ) const
参数

.

返回值

.FRM 文件数据的长度(32 位无符号整数)。

Table::getHashMap()

描述

获取此表使用的哈希映射。

签名
bool getHashMap
    (
      Uint32* id = 0,
      Uint32* version = 0
    ) const
参数

表 ID 和版本。

返回值

如果表具有哈希映射,则为真,否则为假。

Table::getKValue()

描述

此方法获取 KValue,这是一个哈希参数,目前仅限于值 6。在将来的版本中,可以将其设置为其他值。

签名
int getKValue
    (
      void
    ) const
参数

.

返回值

一个整数(目前始终为 6)。

Table::getLinearFlag()

描述

此方法检索表的线性哈希标志的值。

签名
bool getLinearFlag
    (
      void
    ) const
参数

.

返回值

如果标志已设置,则为 true,否则为 false

Table::getLogging()

描述

此类用于检查表是否已记录到磁盘,即它是否为永久表或临时表。

签名
bool getLogging
    (
      void
    ) const
参数

.

返回值

返回一个布尔值。如果此方法返回 true,则对表进行完全检查点和日志记录。如果为 false,则该表是一个临时表,不会记录到磁盘;如果系统重新启动,该表仍然存在并保留其定义,但它将为空。默认日志记录值为 true

Table::getMaxLoadFactor()

描述

此方法返回本地哈希表中容器开始拆分时的负载因子(哈希参数)。

签名
int getMaxLoadFactor
    (
      void
    ) const
参数

.

返回值

一个整数,其最大值为 100。当返回最大值时,这意味着内存使用率已优化。较小的值表示每个容器存储的数据更少,这意味着可以更快地找到键,但会消耗更多内存。

Table::getMaxRows()

描述

此方法获取表可以容纳的最大行数。这用于计算分区数。

签名
Uint64 getMaxRows
    (
      void
    ) const
参数

.

返回值

表中的最大行数,作为 64 位无符号整数。

Table::getMinLoadFactor()

描述

此方法获取哈希表开始缩减时的负载因子的值。此值应始终小于 getMaxLoadFactor() 返回的值。

签名
int getMinLoadFactor
    (
      void
    ) const
参数

.

返回值

用整数表示的百分比;参见 Table::getMaxLoadFactor()

Table::getMinRows()

描述

此方法获取表可以容纳的最小行数,用于计算分区数量。

签名
Uint64 getMinRows
    (
      void
    ) const
参数

.

返回值

作为 64 位无符号整数的最小表行数。

Table:getName()

描述

获取表的名称。

签名
const char* getName
    (
      void
    ) const
参数

.

返回值

表的名称(字符串)。

Table::getNoOfAutoIncrementColumns()

描述

此方法用于获取表中的自动递增列数量。

签名
int getNoOfAutoIncrementColumns
    (
      void
    ) const
参数

.

返回值

表示表中自动递增列数量的整数。

Table::getNoOfColumns()

描述

此方法用于获取表中的列数。

签名
int getNoOfColumns
    (
      void
    ) const
参数

.

返回值

表示表中列数的整数。

Table::getNoOfPrimaryKeys()

描述

此方法查找表中主键列的数量。

签名
int getNoOfPrimaryKeys
    (
      void
    ) const
参数

.

返回值

表示表中主键列数量的整数。

Table::getObjectId()

描述

此方法获取表的对象 ID。

签名
virtual int getObjectId
    (
      void
    ) const
参数

.

返回值

对象 ID 作为整数返回。

Table::getObjectStatus()

描述

此方法获取表的狀態。

签名
virtual Object::Status getObjectStatus
    (
      void
    ) const
参数

.

返回值

一个 Object::Status 值。

Table::getObjectType() (已过时)

描述

此方法无法按预期工作,并在 NDB 7.5.0 中被移除(错误#47960,错误#11756088)。

签名
Object::Type getObjectType
    (
      void
    ) const
参数

.

返回值

返回一个 Object::Type 值。

Table::getObjectVersion()

描述

此方法获取表的对象版本(参见 NDB 架构对象版本)。

签名
virtual int getObjectVersion
    (
      void
    ) const
参数

.

返回值

表的对象版本,作为整数。

Table::getPartitionBalance()

描述

此方法获取表的partition balance 方案(片段计数类型)。

在 NDB 7.5 之前,此方法称为 getFragmentCountType()

签名
Object::PartitionBalance getPartitionBalance
    (
      void
    ) const
参数

.

返回值

分区平衡方案,作为 Object::PartitionBalance 类型的值。

Table::getPartitionBalanceString()

描述

此方法获取表的partition balance 方案(片段计数类型),并将其作为字符串返回。

在 NDB 7.5 之前,此方法称为 getFragmentCountTypeString()

签名
const char* getPartitionBalanceString
    (
      void
    ) const
参数

.

返回值

分区平衡方案,作为字符串值。

Table::getPartitionId()

描述

获取表的partition ID,根据其哈希值。

签名
Uint32 getPartitionId
    (
      Uint32 hashvalue
    ) const
参数

一个 hashvalue。请注意,如果表尚未实际检索(例如,使用 getTableId()),则结果可能不准确或无用。

返回值

hashvalue 对应的partition 的标识符。

Table::getPrimaryKey()

描述

此方法用于获取表的primaryKey名称。

签名
const char* getPrimaryKey
    (
      int no
    ) const
参数

.

返回值

primaryKey的名称,一个字符串(字符指针)。

Table::getRangeListData()

描述

此方法获取与表关联的范围或列表数据。

签名
const void* getRangeListData
    (
      void
    ) const
参数

.

返回值

指向数据的指针。

Table::getRangeListDataLen()

描述

此方法获取表范围或列表数组的大小。

签名
Uint32 getRangeListDataLen
    (
      void
    ) const
参数

.

返回值

列表或范围数组的长度,作为整数。

Table::getRowChecksumIndicator()

描述

检查行校验和指示器是否已设置。

签名
bool getRowChecksumIndicator
    (
      void
    ) const
参数

.

返回值

一个 truefalse 值。

Table::getRowGCIIndicator()

描述

检查行 GCI 指示器是否已设置。

签名
bool getRowGCIIndicator
    (
      void
    ) const
参数

.

返回值

一个 truefalse 值。

Table::getRowSizeInBytes()

描述

获取此表中行的 size。这是可以存储在表单行中的(最大)数据量,不包括存储在表外部的任何 blob 数据。

签名
int getRowSizeInBytes
    (
      void
    ) const
参数

.

返回值

行的 size,以字节为单位。

Table::getSingleUserMode()

描述

获取表的单用户模式。

签名
enum SingleUserMode getSingleUserMode
    (
      void
    ) const
参数

.

返回值

一个 SingleUserMode 值。

Table::getTableId()

描述

此方法获取表的 ID。

签名
int getTableId
    (
      void
    ) const
参数

.

返回值

表的 ID,作为整数。

Table::getTablespace()

描述

此方法以两种方式使用:获取此表所属的tablespace名称;验证给定的tablespace是否为此表使用。

签名

要获取正在使用的tablespace的名称,请在不带任何参数的情况下调用

const char* getTablespace
    (
      void
    ) const

要确定tablespace是否为由给定 ID 和版本指示的tablespace,请提供这些参数,如下所示

bool getTablespace
    (
      Uint32* id      = 0,
      Uint32* version = 0
    ) const
参数

参数的数量和类型取决于此方法的使用方式

  1. 当用于获取表使用的tablespace的名称时,它在不带任何参数的情况下被调用。

  2. 当用于确定给定的tablespace是否为此表使用时,getTablespace() 接受两个参数

    • tablespace id,作为指向 32 位无符号整数的指针

    • tablespace version,也作为指向 32 位无符号整数的指针

    idversion 的默认值都是 0

返回值

返回类型取决于方法的调用方式

  1. getTablespace() 在不带任何参数的情况下被调用时,它返回一个 Tablespace 对象实例。

  2. 当用两个参数调用时,如果tablespace与具有指示的 ID 和版本的tablespace相同,则返回 true;否则,它返回 false

Table::getTablespaceData()

描述

此方法获取表的tablespace 数据(ID 和版本)。

签名
const void* getTablespaceData
    (
      void
    ) const
参数

.

返回值

指向数据的指针。

Table::getTablespaceDataLen()

描述

此方法用于获取表tablespace 数据的长度。

签名
Uint32 getTablespaceDataLen
    (
      void
    ) const
参数

.

返回值

数据的长度,作为 32 位无符号整数。

Table::getTablespaceNames()

描述

此方法获取指向表片段中使用的tablespace名称的指针。

签名
const void* getTablespaceNames
    (
      void
    )
参数

.

返回值

返回指向tablespace名称数据的指针。

Table::getTablespaceNamesLen()

描述

此方法获取 getTablespaceNames() 返回的tablespace名称数据的长度。(参见 Table::getTablespaceNames()。)

签名
Uint32 getTablespaceNamesLen
    (
      void
    ) const
参数

.

返回值

以字节为单位返回名称数据的长度,作为 32 位无符号整数。

Table::hasDefaultValues()

描述

用于确定表是否具有任何定义了除 NULL 以外的默认值的列。

要读取和写入默认列值,请使用 Column::getDefaultValue()Column::setDefaultValue()

签名
bool hasDefaultValues
    (
      void
    ) const
参数

.

返回值

如果表具有任何非 NULL 列,且这些列具有默认值,则返回 true,否则返回 false

Table::setDefaultNoPartitionsFlag()

描述

此方法设置一个指示器,用于确定是否为表使用默认分区数。

签名
void setDefaultNoPartitionsFlag
    (
      Uint32 indicator
    ) const
参数

此方法接受一个参数 indicator,一个 32 位无符号整数。

返回值

.

Table::setExtraMetadata()

描述

为该表存储打包的额外元数据。数据在没有进行任何修改的情况下打包到给定 Table 对象的缓冲区中。

在 NDB 8.0 中添加。

签名
int setExtraMetadata
    (
      Uint32 version,
      const void* data,
      Uint32 length
    )
参数

此方法使用的三个参数列出如下

  • version: 如 NDB Cluster 代码中所使用,1 表示额外元数据包含 .frm 文件(blob 数据),如 NDB 7.6 及更早版本中的那样;2 表示它是在 NDB 8.0 中的序列化字典信息。您应该意识到这只是一个约定,这些值可以是应用程序特定的,如您所愿。

  • data: 作为元数据存储的实际数据。

  • length: 要存储的数据的长度。

返回值

成功时为 0。任何其他值都表示失败;在这种情况下,该值是指示错误类型的错误代码。

Table::setForceVarPart()

描述

强制表分配可变 size 的部分,以允许对表执行在线操作,即使它没有可变 size 的列。有关 NDB Cluster 中在线操作的更多信息,请参见 NDB Cluster 中使用 ALTER TABLE 进行在线操作

签名
void setForceVarPart
    (
      bool force
    )
参数

force 设置为 true 使用,以使表具有可变 size 部分。

返回值

.

Table::setFragmentCount()

描述

设置表片段的数量。

签名
void setFragmentCount
    (
      Uint32 count
    )
参数

count 是将用于表的片段数量。

返回值

.

Table::setFragmentData()

描述

此方法写入包含以下片段信息的数组

  • 片段 ID

  • 节点组 ID

  • 片段状态

签名
void setFragmentData
    (
      const void* data,
      Uint32      len
    )
参数

此方法接受以下两个参数

  • 指向要写入的片段数据的指针

  • 此数据的长度 (len),以字节为单位,作为 32 位无符号整数

返回值

.

Table::setFragmentType()

描述

此方法设置表的碎片类型。

签名
void setFragmentType
    (
      FragmentType fragmentType
    )
参数

此方法接受一个参数,一个 Object::FragmentType 值。

返回值

.

Table::setFrm()

注意

此功能已弃用,应避免使用。它可能会在 NDB 集群的未来版本中被删除。

描述

此方法用于将数据写入此表的 .FRM 文件。

MySQL 8.0 和 NDB 8.0 不再使用 .FRM 文件,而是使用 MySQL 数据字典来存储表元数据;因此,此方法从 NDB 8.0.27 开始已弃用,并且可能会在将来的 NDB 版本中被删除。对于读取和写入表元数据,请改用 getExtraMetadata()setExtraMetadata()

签名
void setFrm
    (
      const void* data,
      Uint32      len
    )
参数

此方法接受以下两个参数

  • 指向要写入的 data 的指针。

  • 数据的长度 (len)。

返回值

.

Table::setHashMap()

描述

为表设置哈希映射。

签名
int setHashMap
    (
      const class HashMap &
    )
参数

对哈希映射的引用。

返回值

成功时返回 0;失败时返回 -1 并设置错误。

Table::setKValue()

描述

这设置 KValue,一个哈希参数。

签名
void setKValue
    (
      int kValue
    )
参数

kValue 是一个整数。目前唯一允许的值是 6。在将来的版本中,这可能成为一个变量参数。

返回值

.

Table::setLinearFlag()

描述

设置表的线性哈希标志。参见 Table::getLinearFlag()

签名
void setLinearFlag
    (
      Uint32 flag
    )
参数

flag 是一个 32 位无符号整数。

返回值

.

Table::setLogging()

描述

切换表的日志状态。参见 Table::getLogging()

签名
void setLogging
    (
      bool enable
    )
参数

如果 enabletrue,则启用此表的日志记录;如果为 false,则禁用日志记录。

返回值

.

Table::setMaxLoadFactor()

描述

此方法在拆分本地哈希表中的容器时设置最大负载系数。

签名
void setMaxLoadFactor
    (
      int max
    )
参数

此方法接受一个参数 max,一个表示百分比的整数(例如,45 表示 45%)。有关更多信息,请参见 Table::getMaxLoadFactor()

这永远不应该大于最小负载系数。

返回值

.

Table::setMaxRows()

描述

此方法设置表可以容纳的最大行数。

签名
void setMaxRows
    (
      Uint64 maxRows
    )
参数

maxRows 是一个 64 位无符号整数,表示要存储在表中的最大行数。

返回值

.

Table::setMinLoadFactor()

描述

此方法在开始减少哈希表时设置最小负载系数。

签名
void setMinLoadFactor
    (
      int min
    )
参数

此方法接受一个参数 min,它是一个表示百分比的整数(例如,45 表示 45%)。有关更多信息,请参阅 Table::getMinLoadFactor()

返回值

.

Table::setName()

描述

此方法设置表的名称。

这是 Table 的唯一一个 set*() 方法,其效果对 MySQL 可见。

签名
void setName
    (
      const char* name
    )
参数

name 是表的(新)名称。

返回值

.

Table::setObjectType() (已过时)

描述

此方法无法按预期工作,并在 NDB 7.5.0 中被移除(错误#47960,错误#11756088)。

签名
void setObjectType
    (
      Object::Type type
    )
参数

所需的对象 type。它必须是 Object::Type 中列出的 Type 值之一。

返回值

.

Table::setPartitionBalance()

描述

设置表的分区平衡方案。

在 NDB 7.5 之前,此方法被称为 setFragmentCountType()

签名
void setPartitionBalance
    (
      Object::PartitionBalance scheme
    )
参数

scheme 是要用于表的分区平衡方案。它是一个类型为 PartitionBalance 的值。

返回值

.

Table::setRangeListData()

描述

此方法设置一个包含信息的数组,该信息将范围值和列表值映射到碎片。这本质上是一个排序的映射,包含碎片 ID/值对。对于范围分区,每个碎片有一个对。对于列表分区,它可以是任意数量的对,但至少与碎片数量一样多的对。

签名
void setRangeListData
    (
      const void* data,
      Uint32      len
    )
参数

此方法需要以下两个参数

  • 指向包含 ID/值对的范围或列表 data 的指针

  • 此数据的长度(len),以 32 位无符号整数表示。

返回值

.

Table::setRowChecksumIndicator()

描述

设置行校验和指示器。

签名
void setRowChecksumIndicator
    (
      bool value
    ) const
参数

一个 truefalse value

返回值

.

Table::setRowGCIIndicator()

描述

设置行 GCI 指示器。

签名
void setRowGCIIndicator
    (
      bool value
    ) const
参数

一个 truefalse value

返回值

.

Table::setSingleUserMode()

描述

为表设置 SingleUserMode

签名
void setSingleUserMode
    (
      enum SingleUserMode
    )
参数

一个 SingleUserMode 值。

返回值

.

Table::setStatusInvalid()

描述

强制将表的狀態设置为无效。

签名
void setStatusInvalid
    (
      void
    ) const
参数

.

返回值

.

Table::setTablespace()

描述

此方法设置表的表空间。

请参阅 第 2.3.28 节,“表空间类”

签名

使用表空间的名称

void setTablespace
    (
      const char* name
    )

使用 Tablespace 对象

void setTablespace
    (
      const class Tablespace& tablespace
    )
参数

此方法可以调用一个参数,该参数可以是以下两种类型之一

  • 表空间的 name(字符串)。

  • 对现有 Tablespace 实例的引用。

返回值

.

Table::setTablespaceData()

描述

此方法设置每个碎片的表空间信息,并包括表空间 ID 和表空间版本。

签名
void setTablespaceData
    (
      const void* data,
      Uint32      len
    )
参数

此方法需要以下两个参数

  • 指向包含表空间 ID 和版本的 data 的指针

  • 此数据的长度(len),以 32 位无符号整数表示。

返回值

.

Table::setTablespaceNames()

描述

设置表碎片使用的表空间的名称。

签名
void setTablespaceNames
    (
      const void* data
      Uint32      len
    )
参数

此方法接受以下两个参数

  • 指向表空间名称 data 的指针

  • 名称数据的长度(len),以 32 位无符号整数表示。

返回值

.

Table::SingleUserMode

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

描述

SingleUserMode 指定单用户模式生效时对表的访问权限。

枚举值

下表显示了 SingleUserMode 的可能值及其描述

表 2.80 Table::SingleUserMode 值和描述

名称 描述
SingleUserModeLocked 表已锁定(不可用)。
SingleUserModeReadOnly 表以只读模式可用。
SingleUserModeReadWrite 表以读写模式可用。

Table::validate()

描述

此方法在创建新表之前验证其定义,执行 Table::aggregate() 方法,并执行其他检查。创建或检索表时会自动调用 validate()。因此,通常不需要直接调用 aggregate()validate()

请注意,即使调用了 validate() 方法,仍然可能存在一些错误,这些错误只能在实际创建表时由 NDB 内核检测到。

签名
int validate
    (
      struct NdbError& error
    )
参数

NdbError 对象的引用。

返回值

一个整数,如果成功,其值为 0,如果表处于不一致状态,则为 -1。在后一种情况下,error 也将被设置。