叢集裡有五個類型的資料表,每一種都會以不同方式儲存在節點上,以及用於不同的用途。
分散式資料表
第一個類型和最常見的類型是分散式資料表。 這些資料表似乎是 SQL 陳述式的一般資料表,但會在背景工作角色節點之間水平分割。 這表示資料表的資料列會儲存在不同的節點上,而在片段資料表中則稱為分區。
彈性叢集不僅會執行 SQL,而且會在整個叢集中執行 DDL (資料定義語言) 語句。 變更分散式資料表串聯的結構描述,以更新背景工作角色的所有資料表分區。 這類作業需要透過連接埠 5432 的連線來完成。
分散式資料行
彈性叢集會使用演算法分區化,將數據列指派給分區。 指派會根據稱為散發資料行的資料表資料行值,以決定性方式進行。 叢集管理員必須在散發資料表時指定此資料行。 對於效能和功能而言,做出正確的選擇很重要。
參考資料表
參考資料表是分散式資料表的類型,其整個內容都會集中到單一分區。 分區會在每個背景工作角色上進行複寫。 任何背景工作角色的查詢都可以在本機存取參考資訊,而不需要向另一個節點要求資料列的網路額外負荷。 參考資料表沒有散發資料行,因為不需要區分每個資料列的個別分區。
參考資料表通常很小,且會用來儲存與任何背景工作角色節點上所執行查詢相關的資料。 例如,列舉值 (如訂單狀態或產品類別)。
區域資料表
當您使用彈性叢集時,每個節點都是一般 PostgreSQL 資料庫。 您可以在其上建立一般資料表,並選擇不要將這些資料表分區化。
本機資料表的絕佳候選項目是未參與聯結查詢的小型系統管理資料表。 例如,應用程式登入和驗證的 users 資料表。 只有在您不打算使用連接埠 7432 或 8432 於彈性叢集中進行連線的負載平衡時,這種類型的資料表才會有用。
本機受控資料表
如果本機數據表與參考數據表之間存在外鍵參考,彈性叢集可能會自動將本機數據表新增至元數據。 此外,您可以在一般本機資料表上執行 citus_add_local_table_to_metadata 函數,以手動建立本機受控資料表。 中繼資料中存在的資料表會被視為受控資料表,而且可以從任何節點進行查詢。 Citus 知道要路由至節點,以從本機受控資料表取得資料。 在 citus_tables 檢視中,會將這類資料表顯示為本機。
結構描述資料表
使用結構描述型分區化時,分散式結構描述會自動與個別共置群組產生關聯。 在這些結構描述中建立的資料表會自動轉換成沒有分區索引鍵的共置分散式資料表。 這類資料表被視為結構描述資料表,而且會在 citus_tables 檢視中顯示為結構描述。