Aurora PostgreSQL 中支援定序 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Aurora PostgreSQL 中支援定序

定序是一組規則,用來決定如何排序和比較存放在資料庫中的字元字串。定序在電腦系統中扮演著基本角色,並包含為作業系統的一部分。隨著新字元加入至語言或排序規則變更時,定序也會變更。

定序程式庫會定義定序的特定規則和演算法。PostgreSQL 內使用的最熱門定序程式庫是 GNU C (glibc)和 Unicode 國際化元件 (ICU)。依預設,Aurora PostgreSQL 會使用 glibc 定序,其中包含多位元組字元序列的 Unicode 字元排序順序。

當您建立新的 Aurora PostgreSQL DB 叢集 時,它會檢查作業系統是否有可用的定序。CREATE DATABASE 命令 LC_COLLATELC_CTYPE 的 PostgreSQL 參數用來指定一個定序,其作為該資料庫中的預設定序。或者,您也可以使用 CREATE DATABASE 中的 LOCALE 參數來設定這些參數。這會決定資料庫中字元字串的預設定序,以及將字元分類為字母、數字或符號的規則。您也可以選擇要在資料欄、索引或查詢上使用的定序。

Aurora PostgreSQL 取決於作業系統中的 glibc 程式庫是否支援定序。Aurora PostgreSQL 執行個體會定期使用最新版本的作業系統進行更新。這些更新有時會包含較新版本的 glibc 程式庫。較新版本的 glibc 很少會變更某些字元的排序順序或定序,這可能導致資料以不同的方式排序或產生無效的索引項目。如果您在更新期間發現定序的排序順序問題,您可能需要重建索引。

為了 glibc 更新可能造成的影響,Aurora PostgreSQL 現在包含獨立的預設定序程式庫。此定序程式庫可在 Aurora PostgreSQL 14.6、13.9、12.13、11.18 和較新的次要版本中使用。它與 glibc 2.26-59.amzn2 相容,並提供排序順序穩定性以防止出現不正確的查詢結果。