PolarDB分區表完全相容原生MySQL的文法和功能。同時,PolarDB分區表相對於原生MySQL進行了效能增強,支援豐富的分區類型及組合,使您可以更加便捷、簡單和高效的使用分區表。
分區表是將一個大的邏輯表,按照分區規則分割成多個小的物理表, 大的邏輯表為分區表,小的物理表為分區,每一個分區在儲存引擎上獨立組織管理資料和索引。分區規則主要包括RANGE、LIST、HASH三種,您需要指定分區鍵, 根據分區鍵欄位的值按照這三種規則把資料劃分到不同的分區。PolarDB還支援建立混合分區,可以將每個分區放在不同的儲存引擎上。Orders表做二級分區的示意圖如下:
優勢
豐富的分區類型及組合。
支援RANGE、LIST、HASH和LIST DEFAULT HASH分區及其分區的任意組合,使得分區表具有更加靈活的資料分治能力。
支援INTEVAL RANGE分區,讓分區營運自動化更加簡單高效。
支援INNODB和OSS混合分區,助力您的業務降本增效。
支援在不同分區下建立不同的索引(Partial index)及全域二級索引(Global Secondary Index),更好的滿足基於分區的HTAP交易和查詢負載對錶索引的不同要求。
提升效能。
分區剪枝(Partition Pruning):在查詢資料時,最佳化器會根據查詢條件和分區中繼資料自動過濾不合格分區,減少資料掃描,PolarDB還支援分區動態剪枝(Partition Dynamic Pruning)功能,協助您提升查詢效率。
分區串連(PartitionWise Joins):在串連分區時,根據分區條件將分區表打散成分區與分區之間的串連,過濾不合格分區之間的串連,把串連的資料控制在最小範圍內,提高查詢效率。
統計資訊管理:相比普通表,以分區粒度進行的資訊統計和管理,更加精確和靈活,從而支援選擇更優的查詢計劃。
支援並行查詢加速,為基於分區的大表方案提供成倍效能提升。
加強資料管理能力。
索引建立、刪除和重建:以分區為單位進行索引的建立、刪除和重建。
備份和恢複: 以分區粒度進行資料備份和恢複。
降低成本。
分區可以根據資料重要性、資料存放區效能、資料存放區可靠性和資料存放區形式多種維度進行儲存。
功能最佳化和效能增強
相對於原生MySQL,PolarDB如下功能得到了最佳化,效能得到了增強:
類型 | 最佳化項 | 相關文檔 | |
擴充分區類型 | 支援全類型二級分區 | 支援HASH/KEY分區下面做二級分區 | |
二級分區支援RANG/LIST類型 | |||
支援二級分區的Partition Pruning | |||
支援二級分區粒度上的部分DDL操作 | |||
List Default [Hash]分區類型 | 支援List Default [Hash]分區 | ||
支援List Default [Hash]分區下面做二級分區 | |||
二級分區支援List Default分區 | |||
支援通過reorganize從default [Hash]分區分離出List分區 | |||
支援通過reorganize List分區合并到default [Hash]分區 | |||
支援通過reorganize改變default hash分區的個數 | |||
支援List default Hash分區的Partition Pruning | |||
支援List Default Hash分區、ONLINE ADD List分區 | |||
Interval Range分區類型 | 支援Interval Range分區 | ||
Interval Range支援Hash二級分區 | |||
支援分區索引 | 部分索引(Partial Index) | Partial Index支援一級分區 | |
Partial Index支援二級分區 | |||
支援一級/二級分區粒度的索引DDL操作(ADD/DROP/REBUILD Index) | |||
支援Partial Index的Index Pruning | |||
統計資訊支援Partial Index | |||
Hybrid Partition表支援 Partial Index | |||
List Default Hash分區支援Partial Index | |||
全域二級索引(Global Secondary Index) | 支援CREATE/DROP全域二級索引 | ||
支援DML和大部分表級的DDL | |||
支援全域二級索引的Online DDL | |||
支援unique的全域二級索引 | |||
Query最佳化 | 查詢最佳化工具 | 支援Partial Partition Wise join | 無 |
支援Partition動態剪枝 | |||
支援Partition Index Pruning | |||
支援分區粒度的統計資訊(Hyperloglog) | |||
分區表支援分區間的並行掃描 | |||
支援全域索引最佳化器選擇和並行掃描 | |||
支援分區與MPP相結合 | |||
分區粒度MDL鎖 | ADD/DROP PARTITION支援分區粒度的MDL鎖 | ||
EXCHANGE PARTITION支援分區粒度的MDL鎖 | |||
REBULD/REORGANIZE PARTITION支援分區粒度的MDL鎖 | |||
二級分區支援子分區粒度的MDL鎖 | |||
DDL功能 | 普通表與分區表的ONLINE DDL | 普通錶轉分區表ONLINE DDL用於歷史資料轉Range分區表 | |
Hybrid Partition | 支援不同類型的儲存引擎 |