PolarDB MySQL版支持在分區表上創建部分索引(Partial Index),即索引可以只創建在分區表的某一個或多個分區上,而不需要在所有分區上同時創建索引。您可以在各個分區上創建不同的索引,以滿足對不同分區的查詢要求,同時可以節省大量的存儲空間。
適用場景
使用訂單表或日志表等業務場景
對于在使用訂單表或日志表等業務場景下創建的分區表,通常會選擇按照時間進行RANGE分區,但一般只對最新的一到兩個分區進行頻繁的查詢,從需求角度來講,僅在查詢頻繁的分區上創建對應的二級索引即可,但原生的MySQL等數據庫只支持在所有的分區上創建相同的索引,雖然滿足了熱點分區的查詢需求,但浪費了在分區上創建二級索引的空間。
針對以上場景,您可以在分區表上創建部分索引,即只在熱點分區上創建所需要的二級索引,既滿足熱點分區的查詢需求,同時也節省了本來需要在所有分區上創建二級索引的空間。
對歷史數據進行查詢和分析的場景
需要對歷史數據進行查詢和分析的場景,通常會選擇按照時間進行RANGE分區。對于新創建的分區,需要快速的插入數據并進行簡單的查詢,而進行數據分析的大查詢幾乎都在歷史分區上,為了滿足對于歷史分區的查詢分析需求,需要創建多個二級索引。但分區上的索引越多,數據寫入速度會越慢。
針對以上場景,您可以在分區表上創建部分索引,即在熱點分區上創建簡單查詢的二級索引,在歷史分區上創建分析類查詢的二級索引。
根據不同的業務需求在分區上創建不同的索引,不僅保證了熱點分區的插入性能,同時滿足了在歷史分區上的查詢分析需求。除此之外,最大限度的節省了在所有分區上創建二級索引占用的空間。
前提條件
集群版本需為PolarDB MySQL版8.0.2版本且修訂版本為8.0.2.2.21及以上。您可以通過查詢版本號來確認集群版本。
使用限制
不支持在主鍵上創建部分索引。
不支持將全局二級索引(GSI)創建為部分索引,但是,您可以在一個分區表上同時創建全局二級索引和部分索引。
不支持將FULLTEXT類型和SPATIAL類型的索引創建為部分索引。
優化器選擇索引時,只選擇需要訪問的分區表上已有的索引。
使用說明
您可以根據實際需要在分區表上創建部分索引,索引創建成功后,您可以修改部分索引。
在分區表上創建部分索引的功能處于灰度發布階段,如需使用,請添加釘釘群進行咨詢。釘釘群號:24490017825。