使用列存索引(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语句中的所有列都被列存索引覆盖后,再使用列存索引加速查询功能。