本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Aurora DSQL 的主索引鍵
在 Aurora DSQL 中,主索引鍵是實際整理資料表資料的功能。其類似 PostgreSQL 的 CLUSTER 操作,或其他資料庫的叢集索引。當您定義主索引鍵時,Aurora DSQL 會建立包含資料表中所有資料欄的索引。Aurora DSQL 中的主索引鍵結構可確保有效的資料存取和管理。
資料結構和儲存
當您定義主索引鍵時,Aurora DSQL 會按照主索引鍵順序存放資料表資料。這種索引組織結構可讓主索引鍵查詢直接擷取所有資料欄值,而不用像傳統 B 型樹狀結構索引一樣遵循資料指標。PostgreSQL 的 CLUSTER 操作只會重新整理一次資料;不同的是,Aurora DSQL 會自動且持續地維護此順序。此方法可改善依賴主索引鍵存取的查詢效能。
Aurora DSQL 也會使用主索引鍵,為資料表和索引中的每個資料列產生整個叢集的唯一索引鍵。此唯一索引鍵也支援分散式資料管理。其可自動分割多個節點的資料,支援可擴展的儲存和高度並行。因此,主索引鍵結構可協助 Aurora DSQL 自動擴展並有效管理並行工作負載。
選擇主索引鍵的準則
在 Aurora DSQL 中選擇和使用主索引鍵時,請考慮下列準則:
-
在建立資料表時定義主索引鍵。您稍後無法變更此索引鍵或新增新的主索引鍵。主索引鍵會成為整個叢集的索引鍵的一部分,用於資料分割和自動擴展寫入輸送量。如果您未指定主索引鍵,Aurora DSQL 會指派合成的隱藏 ID。
-
若是具大量寫入的資料表,請避免使用單調遞增的整數作為主索引鍵。這可能會將所有新的插入導向單一分割區,而造成效能問題。反之,請使用隨機分佈的主索引鍵,以確保寫入平均分佈至各儲存分割區。
-
若是不常變更或唯讀的資料表,您可以使用遞增索引鍵。時間戳記或序號就是遞增索引鍵的範例。密集索引鍵有許多緊密間隔或重複的值。即使是密集索引鍵,您也可以使用遞增金鑰,因為寫入效能較不重要。
-
如果完整資料表掃描不符合您的效能需求,請選擇更有效率的存取方法。在大多數情況下,這表示您使用的主索引鍵應符合查詢中最常見的聯結和查詢索引鍵。
-
主索引鍵中資料欄合併後的大小上限為 1 KiB。如需詳細資訊,請參閱 Aurora DSQL 資料庫限制和 Aurora DSQL 支援的資料類型。
-
您可以在主索引鍵或次要索引中包含最多 8 個資料欄。如需詳細資訊,請參閱 Aurora DSQL 資料庫限制和 Aurora DSQL 支援的資料類型。