文件首頁
MySQL NDB Cluster API 開發者指南
相關文件 下載本手冊
PDF (美式信紙) - 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() 取得索引物件狀態
getObjectVersion() 取得索引物件 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 Schema 物件版本)。

簽名
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 資料類型值和描述

名稱 描述
Undefined 未定義的物件類型(初始/預設值)
UniqueHashIndex 唯一、無序的雜湊索引(目前唯一支援的索引類型)
OrderedIndex 非唯一、有序的索引