使用列存索引(IMCI)查詢複雜的SQL語句時,需要列存索引覆蓋SQL語句中使用到的所有列。PolarDB MySQL版內建了一系列預存程序,您可以使用這些預存程序擷取SQL語句中未被索引覆蓋的列名,同時可以擷取建立列存索引的DDL語句。本文介紹了PolarDB MySQL版內建的預存程序以及如何使用預存程序輔助建立列存索引。
簡介
PolarDB MySQL版內建的預存程序如下:
檢查SQL語句中是否存在未被索引覆蓋的列的預存程序:dbms_imci.check_columnar_index()。
擷取建立列存索引的DDL語句的預存程序:dbms_imci.columnar_advise()和dbms_imci.columnar_advise_by_columns()。
批量擷取建立列存索引的DDL語句的預存程序:dbms_imci.columnar_advise_begin() 、dbms_imci.columnar_advise_show() 和dbms_imci.columnar_advise_end()。
使用說明
使用列存索引查詢複雜的SQL語句時,您需要檢查SQL語句中是否存在未被索引覆蓋的列,若存在未被列存索引覆蓋的列,您可以針對某條SQL語句擷取建立列存索引的DDL語句或針對某個業務批量擷取建立列存索引的DDL語句,執行擷取到的DDL語句,使得SQL語句中的所有列都被列存索引覆蓋後,再使用列存索引加速查詢功能。