PolarDB for MySQL permite criar índices parciais em tabelas particionadas. Você pode criar índices em apenas uma ou mais partições de uma tabela particionada, em vez de todas as partições. É possível criar índices diferentes nas partições de uma tabela particionada para atender aos requisitos de consulta de cada partição e economizar espaço de armazenamento.
Cenários
-
Tabelas de pedidos ou de logs
Em cenários com tabelas de pedidos ou logs, geralmente criam-se tabelas particionadas por intervalo de tempo. No entanto, apenas as uma ou duas partições mais recentes sofrem consultas frequentes. Você pode criar índices secundários somente nas partições consultadas com frequência. Contudo, o MySQL nativo e outros bancos de dados permitem apenas a criação dos mesmos índices em todas as partições. Embora isso atenda aos requisitos de consulta das partições quentes, o consumo de espaço é alto devido aos índices secundários criados nas demais partições.
Nesses cenários, você pode criar índices parciais na tabela particionada. Apenas os índices secundários necessários são criados nas partições quentes. Isso não só atende aos requisitos de consulta das partições quentes, mas também economiza o espaço dos índices secundários criados nas partições.
-
Consulta e análise de dados históricos
Em cenários de consulta e análise de dados históricos, geralmente criam-se partições por intervalo de tempo. Nas novas partições, você insere dados rapidamente e executa consultas simples. A maioria das grandes consultas para análise de dados ocorre nas partições históricas. Para atender aos requisitos de consulta e análise das partições históricas, você pode criar vários índices secundários. No entanto, à medida que mais índices são criados nas partições, a velocidade de gravação de dados diminui.
Nos cenários acima, você pode criar índices parciais na tabela particionada: crie índices secundários para consultas simples nas partições quentes e índices secundários para consultas analíticas nas partições históricas.
Ao criar índices diferentes nas partições com base em requisitos de negócios distintos, você garante o desempenho da inserção de dados nas partições quentes e atende aos requisitos de consulta e análise nas partições históricas. Além disso, essa abordagem economiza ao máximo o espaço dos índices secundários criados nas partições.
Pré-requisitos
O cluster deve executar o PolarDB for MySQL 8.0.2 com versão de revisão 8.0.2.2.21 ou posterior. Para verificar a versão de um cluster, consulte a seção "Query the engine version" do tópico Engine versions.
Limitações
Não é possível criar índices parciais em chaves primárias.
Não é possível criar um global secondary index (GSI) como índice parcial. No entanto, você pode criar um índice secundário global e um índice parcial na mesma tabela particionada.
Não é possível criar índices dos tipos FULLTEXT e SPATIAL como índices parciais.
O otimizador pode selecionar apenas os índices existentes na tabela particionada para acesso.
Uso
Você pode criar um índice parcial em uma tabela particionada. Após a criação, é possível modificar o índice parcial. Para obter informações sobre como criar e modificar um índice parcial, consulte Create a partial index e Modify a partial index.
O recurso de criação de índices parciais em tabelas particionadas está em lançamento canário. Para usar esse recurso, entre no grupo 24490017825 do DingTalk para obter suporte técnico.