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