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