全部產品
Search
文件中心

ApsaraDB for OceanBase:建立索引 CREATE INDEX

更新時間:Jul 01, 2024

本文為您介紹遷移 MySQL 資料庫的資料至 OceanBase 資料庫 MySQL 租戶時,CREATE INDEX DDL 轉換支援的範圍。

總覽

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  | ENGINE_ATTRIBUTE [=] 'string'
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

index_type:
    USING {BTREE | HASH}

algorithm_option:
    ALGORITHM [=] {DEFAULT | INPLACE | COPY}

lock_option:
    LOCK [=] {DEFAULT | NONE | SHARED | EXCLUSIVE}

支援的範圍

  • 支援建立普通索引。

  • 支援建立 UNIQUE 索引。

  • 支援建立 SPATIAL INDEX。

    重要

    OceanBase 資料庫僅 3.2.4 和 4.1.0 版本支援。

  • 支援建立首碼索引。

    CREATE INDEX i ON t(c1(2));
  • index_option 中僅支援指定 comment。

不支援的範圍

重要

如果同步的 DDL 包含以下不支援的定義,則整個建表語句會轉換失敗(輸出空)。

不支援建立函數索引。

忽略的屬性

重要

如果同步的 DDL 包含以下不支援的定義,則這些屬性將不會被解析和轉換,最終會被忽略。

  • 不支援指定 ASC / DESC 關鍵字。

  • 不支援指定 KEY_BLOCK_SIZE

  • 不支援指定 WITH PARSER

  • 不支援指定 VISIBLE | INVISIBLE

  • 不支援指定 ENGINE_ATTRIBUTE

  • 不支援指定 SECONDARY_ENGINE_ATTRIBUTE

  • 不支援指定 ALGORITHM = DEFAULT | INPLACE | COPY

  • 不支援指定 LOCK = DEFAULT | NONE | SHARED | EXCLUSIVE

使用限制

重要

由於 OceanBase 資料庫 MySQL 租戶本身的限制,如果存在以下情境,同步的 DDL 被成功轉換後,執行到 OceanBase 資料庫 MySQL 租戶可能會報錯。

OceanBase 資料庫 MySQL 租戶不支援將索引建立在某些特定欄位類型上。詳情請參見 MySQL 資料庫和 OceanBase 資料庫 MySQL 租戶的 DDL 不相容點