全部產品
Search
文件中心

PolarDB:使用限制

更新時間:Jul 06, 2024

本文將介紹使用Sequence過程中的注意事項及問題處理的方法。

New Sequence

  • New Sequence僅支援在5.4.14及以上版本的AUTO模式資料庫中使用;
  • New Sequence的自訂步長、限定最大值和迴圈分配特性,僅在5.4.17及以上版本支援;
  • 如果已經建立過New Sequence,但要降級到不支援New Sequence的版本上,則必須在降級前將所有New Sequence轉換成Group Sequence,轉換方法如下:
    • 通過INFORMATION_SCHEMA.SEQUENCES視圖查詢執行個體範圍內是否存在New Sequence;
    • 若New Sequence存在,使用轉換語句CONVERT ALL SEQUENCES FROM NEW TO GROUP將執行個體下的所有New Sequence轉換為Group Sequence,詳情請參見CONVERT SEQUENCES
  • New Sequence中使用GMS對AUTO_INCREMENT的值進行分配,為保證效能,需要在GMS內緩衝一段值。如果GMS發生版本升級、主備切換、變更配置、遷移等操作,那麼操作前記憶體中緩衝的值會被丟棄,造成值的跳躍。

Group Sequence

  • 5.4.13及以下版本,5.4.14及以上版本的DRDS模式資料庫中,預設使用Group Sequence;
  • Group Sequence的值從100001開始分配,即起始值(可分配的最小值)為100001;
  • 單元化Group Sequence不支援作為源或目標的類型轉換,也不支援修改起始值以外的參數;
  • 屬於同一個全域唯一數字序列分配空間的每個單元化Group Sequence ,必須指定相同的單元數量和不同的單元索引,以保證跨執行個體或跨庫的全域唯一性。
  • 不建議使用建表時自動關聯的、以AUTO_SEQ_為首碼的Group Sequence單獨擷取NEXTVAL,並使用擷取的值通過INSERT顯式插入該表中,這樣做可能使該Group Sequence頻繁重新整理緩衝區間,導致值增長過快。

Time-based Sequence

將Time-based Sequence用於表中自增列時,該列必須使用BIGINT類型。