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


2.3.8 Index 类

本节提供有关 Index 类的信息。

Index 类概述

父类

NdbDictionary

子类

描述

此类表示 NDB Cluster 表列上的索引。它是 NdbDictionary 类的子类,使用 Object 类。

如果使用 NDB API 创建或更改索引,MySQL 将无法看到这些修改。唯一的例外是使用 Index::setName() 重命名索引。

方法

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

表 2.23 Index 类方法和描述

名称 描述
Index() 类构造函数
~Index() 析构函数
addColumn() 向索引添加 Column 对象
addColumnName() 按名称向索引添加列
addColumnNames() 按名称向索引添加多个列
getColumn() 获取构成索引(部分)的列
getLogging() 检查索引是否记录到磁盘
getName() 获取索引的名称
getNoOfColumns() 获取属于索引的列数
getObjectStatus() 获取索引对象状态
getObjectVersion() 获取索引对象状态
getObjectId() 获取索引对象 ID
getTable() 获取被索引表的名称
getType() 获取索引类型
setLogging() 启用/禁用将索引记录到磁盘
setName() 设置索引的名称
setTable() 设置要索引的表的名称
setType() 设置索引类型

类型

Index 定义了一个公共类型,即 Type 类型。

Index 类构造函数

描述

这用于创建 Index 的新实例。

使用 NDB API 创建的索引对 MySQL 服务器不可见。

签名
Index
    (
      const char* name = ""
    )
参数

新索引的名称。可以创建一个没有名称的索引,然后使用 setName() 为其分配名称。请参阅 Index::setName()

返回值

Index 的新实例。

析构函数

析构函数 (~Index()) 作为虚方法提供。

Index::addColumn()

描述

此方法可用于向索引添加列。

列的顺序与它们添加到索引的顺序相匹配。但是,这仅适用于有序索引。

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

要添加到索引的列的引用 c

返回值

.

Index::addColumnName()

描述

此方法的工作方式与 addColumn() 相同,只是它将列的名称作为参数。请参阅 Index::getColumn()

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

要添加到索引的列的 name,作为常量字符指针。

返回值

.

Index::addColumnNames()

描述

此方法用于一次向索引定义添加多个列名。

addColumn()addColumnName() 方法一样,索引按添加顺序编号。这通常只对有序索引重要。

签名
void addColumnNames
    (
      unsigned     noOfNames,
      const char** names
    )
参数

此方法采用两个参数,如下所示

  • 要添加到索引的列数和名称 noOfNames

  • 要添加的 names(作为指向指针的指针)。

返回值

.

Index::getColumn()

描述

此方法检索索引中指定位置的列。

签名
const Column* getColumn
    (
      unsigned no
    ) const
参数

列的序数位置编号 no,作为无符号整数。使用 getNoOfColumns() 方法确定索引包含多少列—有关详细信息,请参阅 Index::getNoOfColumns()

返回值

索引中位置为 no 的列,作为指向 Column 实例的指针。请参阅 第 2.3.1 节 “Column 类”

Index::getLogging()

描述

使用此方法确定是否已为索引启用记录到磁盘。

未记录的索引在集群启动或重新启动时重建。

有序索引当前不支持记录到磁盘;每次启动集群时都会重建它们。(这包括重新启动。)

签名
bool getLogging
    (
      void
    ) const
参数

.

返回值

布尔值

  • true:索引正在记录到磁盘。

  • false:索引未被记录。

Index::getName()

描述

此方法用于获取索引的名称。

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

.

返回值

索引的名称,作为常量字符指针。

Index::getNoOfColumns()

描述

此方法用于获取构成索引的列数。

签名
unsigned getNoOfColumns
    (
      void
    ) const
参数

.

返回值

表示索引中列数的无符号整数。

Index::getObjectStatus()

描述

此方法获取索引的对象状态。

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

.

返回值

Status 值;有关更多信息,请参阅 Object::Status

Index::getObjectVersion()

描述

此方法获取索引的对象版本(请参阅 NDB 模式对象版本)。

签名
virtual int getObjectVersion
    (
      void
    ) const
参数

.

返回值

索引的对象版本,作为整数。

Index::getObjectId()

描述

此方法用于获取索引的对象 ID。

签名
virtual int getObjectId
    (
      void
    ) const
参数

.

返回值

对象 ID,作为整数。

Index::getTable()

描述

此方法可用于获取索引所属表的名称。

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

.

返回值

表的名称,作为常量字符指针。

Index::getType()

描述

此方法可用于查找索引的类型。

签名
Type getType
    (
      void
    ) const
参数

.

返回值

索引类型。有关可能的值,请参阅 Index::Type

Index::setLogging

描述

此方法用于启用或禁用索引到磁盘的日志记录。

签名
void setLogging
    (
      bool enable
    )
参数

setLogging() 接收一个布尔参数 enable。如果 enabletrue,则为索引启用日志记录;如果为 false,则禁用此索引的日志记录。

返回值

.

Index::setName()

描述

此方法设置索引的名称。

这是唯一一个其结果对 MySQL 服务器可见的 Index::set*() 方法。

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

索引的所需 name,作为常量字符指针。

返回值

.

Index::setTable()

描述

此方法设置要建立索引的表。表通过名称引用。

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

要建立索引的表的 name,作为常量字符指针。

返回值

.

Index::setType()

描述

此方法用于设置索引类型。

签名
void setType
    (
      Type type
    )
参数

索引的 type。有关可能的值,请参见 Index::Type

返回值

.

Index::Type

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

描述

这是一个枚举类型,它描述了由给定 Index 实例表示的列索引的类型。

不要将此枚举类型与 Object::TypeColumn::Type 混淆。

枚举值

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

表 2.24 Index::Type 数据类型值和描述

名称 描述
未定义 未定义的对象类型(初始值/默认值)
UniqueHashIndex 唯一无序哈希索引(当前支持的唯一索引类型)
OrderedIndex 非唯一有序索引