文件首頁
MySQL NDB Cluster API 開發人員指南
相關文件 下載本手冊
PDF (US Ltr) - 3.6Mb
PDF (A4) - 3.6Mb


2.3.26 Object 類別

本節提供關於 Object 類別的資訊,其中包含關於資料庫物件 (例如表格和索引) 的 meta-資訊。Object 子類別會為這些和其他資料庫物件建模。

Object 類別概述

父類別

NdbDictionary

子類別

DatafileEventIndexLogfileGroupTableTablespaceUndofileHashMapForeignKey

方法

下表列出 Object 類別的公用方法,以及每個方法的用途或用法

表 2.71 Object 類別方法與描述

名稱 描述
getObjectId() 取得物件的 ID
getObjectStatus() 取得物件的狀態
getObjectVersion() 取得物件的版本

所有這 3 個方法都是純虛擬方法,並且會在需要時於 TableIndexEvent 子類別中重新實作。

類型

這些是 Object 類別的公用類型

表 2.72 Object 類別類型與描述

名稱 描述
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 的狀態。

描述

此參數提供我們物件的狀態。所謂的狀態,是指物件是否已定義且處於可用狀態。數字值用於 dict_obj_infohash_maps 資料表中的 state 欄位,這些資料表位於 ndbinfo 資訊資料庫中。

列舉值

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 物件狀態資料類型的值與說明

名稱 描述
New 物件僅存在於記憶體中,尚未在 NDB 核心中建立
Changed 物件已在記憶體中修改,必須在 NDB 核心中提交,變更才會生效
Retrieved 物件存在,且已從 NDB 核心讀取到主記憶體中
Invalid 物件已失效,不應再使用
Altered 該表格已在 NDB 核心中修改,但仍然可以使用

Object::Store

本節提供有關 Store 類型的資訊,該類型描述 Object 的持久性。

描述

讀取此值會告知我們物件是暫時性還是永久性。

列舉值

Store 的可能值如下表所示,並附有說明

表格 2.77 物件儲存資料類型的值與說明

名稱 描述
StoreUndefined 物件未定義
StoreTemporary 暫時儲存;物件或資料將在系統重新啟動時刪除
StorePermanent 物件或資料是永久的;它已記錄到磁碟

Object::Type

本節提供有關 Type 類型的資訊。

描述

物件的 Type 可以是幾種不同的索引、觸發器、表空間等等。

列舉值

Type 的可能值如下表所示,並附有說明

表格 2.78 物件類型資料類型的值與說明

名稱 描述
TypeUndefined 未定義
SystemTable 系統表格
UserTable 使用者表格(可能是暫時的)
UniqueHashIndex 唯一(但未排序)雜湊索引
OrderedIndex 已排序(但非唯一)索引
HashIndexTrigger 索引維護(內部
IndexTrigger 索引維護(內部
SubscriptionTrigger 備份或複製(內部
ReadOnlyConstraint 觸發器(內部
Tablespace Tablespace
LogfileGroup 記錄檔群組
Datafile 資料檔
Undofile 復原檔
ReorgTrigger 觸發器
HashMap 雜湊映射
ForeignKey 外部索引鍵
FKParentTrigger 在外部索引鍵的父表格上的觸發器
FKChildTrigger 在外部索引鍵的子表格上的觸發器

有關 ForeignKeyFKParentTriggerFKChildTrigger 的詳細資訊,請參閱 第 2.3.6 節,「ForeignKey 類別」