PolarDB for MySQL permite crear índices parciales en una tabla particionada. Es posible crear índices únicamente en una o varias particiones de la tabla, en lugar de hacerlo en todas. También se pueden crear distintos índices en cada partición para cubrir los requisitos de consulta específicos y ahorrar espacio de almacenamiento.
Escenarios
-
Tablas de pedidos o tablas de registros
En escenarios con tablas de pedidos o de registros, lo habitual es crear tablas particionadas por rango basadas en tiempo. Sin embargo, solo las últimas una o dos particiones reciben consultas frecuentes. En estos casos conviene crear índices secundarios exclusivamente en las particiones más consultadas. No obstante, MySQL nativo y otras bases de datos solo permiten crear los mismos índices en todas las particiones. Aunque esto cubre los requisitos de consulta de las particiones activas, el espacio que consumen los índices secundarios creados en cada partición es muy alto.
Para resolver esta situación, cree índices parciales en la tabla particionada. De este modo, solo se crean los índices secundarios necesarios en las particiones activas. Con ello no solo se cubren los requisitos de consulta, sino que también se ahorra espacio de almacenamiento.
-
Consulta y análisis de datos históricos
Cuando se consultan y analizan datos históricos, normalmente se crean particiones por rango basadas en tiempo. En las particiones nuevas se insertan datos rápidamente y se ejecutan consultas sencillas. La mayor parte de las consultas pesadas para el análisis de datos se ejecutan sobre las particiones históricas. Para cubrir estos requisitos de consulta y análisis, se suelen crear varios índices secundarios. Sin embargo, a medida que aumenta la cantidad de índices en las particiones, disminuye la velocidad de escritura de datos.
En este escenario, cree índices parciales en la tabla particionada: defina índices secundarios para consultas sencillas en las particiones activas e índices secundarios para consultas analíticas en las particiones históricas.
Al crear distintos índices según los requisitos de cada caso de uso, se garantiza el rendimiento al insertar datos en las particiones activas y se cubren los requisitos de consulta y análisis de las particiones históricas. Además, se optimiza al máximo el espacio de almacenamiento destinado a los índices secundarios.
Requisitos previos
El clúster debe ejecutar PolarDB for MySQL 8.0.2 con la versión de revisión 8.0.2.2.21 o posterior. Para comprobar la versión del clúster, consulte la sección "Query the engine version" del tema Engine versions.
Límites
No se pueden crear índices parciales en claves primarias.
No es posible crear un global secondary index (GSI) como índice parcial. Sin embargo, sí se puede crear un índice secundario global y un índice parcial en la misma tabla particionada.
Los índices de tipo FULLTEXT y SPATIAL no se pueden crear como índices parciales.
El optimizador solo puede seleccionar los índices existentes en la tabla particionada para acceder a los datos.
Uso
Cree un índice parcial en una tabla particionada. Una vez creado, modifique el índice parcial según sus necesidades. Para obtener información sobre cómo crear y modificar un índice parcial, consulte Create a partial index y Modify a partial index.
La función para crear índices parciales en una tabla particionada se encuentra en versión canary. Para usar esta función, únase al grupo 24490017825 de DingTalk y obtenga soporte técnico.