Todos os produtos
Search
Central de documentação

Tablestore:Índice secundário

Última atualização: Jun 23, 2026

Se um aplicativo precisa usar diferentes atributos como condições de consulta para pesquisar dados, você pode definir esses atributos como colunas de chave primária de um índice secundário para agilizar a consulta. O Tablestore oferece os recursos de índice secundário local e índice secundário global para atender a diferentes requisitos de consistência de leitura durante consultas de dados. Este tópico descreve os termos e recursos dos índices secundários, as diferenças entre os tipos de índices secundários e as observações de uso dos índices secundários.

Informações gerais

Você pode consultar os dados de uma tabela de dados no Tablestore especificando a chave primária da tabela. No entanto, na maioria dos casos, muitos aplicativos precisam consultar dados usando atributos diferentes da chave primária da tabela. Para atender a esse requisito, você pode criar um ou mais índices secundários e usar as tabelas de índice para consultar dados.

O recurso de índice secundário permite consultar dados com base na chave primária de uma tabela de dados e nas colunas de chave de índice dos índices secundários criados para a tabela. Isso melhora a eficiência das consultas. Ao criar um índice secundário, defina os atributos que deseja consultar como colunas de chave primária da tabela de índice. Em seguida, use as colunas de chave primária da tabela de índice para consultar dados. Para mais informações, consulte Cenários.

Termos

Termo

Descrição

tabela de índice

Tabela criada com base nas colunas indexadas de uma tabela de dados.

Os dados na tabela de índice são somente leitura.

coluna predefinida

Coluna não primária predefinida ao criar uma tabela de dados. Uma coluna predefinida pode ser usada como coluna de chave de índice ou coluna de atributo de uma tabela de índice. Especifique o tipo de dados de uma coluna predefinida ao adicioná-la.

null

O Tablestore usa um modelo schema-free. Você pode gravar diferentes colunas de atributo em uma linha sem precisar especificar as colunas de atributo no esquema da tabela.

índice de coluna única

Índice criado em uma única coluna.

índice combinado

Índice criado em várias colunas. Por exemplo, um índice combinado pode ter as colunas de chave de índice 1 e 2.

coluna de atributo indexada

Coluna predefinida mapeada de uma tabela de dados para uma tabela de índice como coluna predefinida da tabela de índice.

preenchimento automático

Recurso que permite ao sistema adicionar automaticamente as colunas de chave primária da tabela de dados que não foram especificadas como colunas de chave de índice a uma tabela de índice como colunas de chave primária da tabela de índice.

Tipos de índice secundário

No Tablestore, os índices secundários são classificados em índices secundários globais e índices secundários locais. Ao usar o recurso de índice secundário global, o Tablestore sincroniza automaticamente os dados das colunas indexadas e das colunas de chave primária de uma tabela de dados com a tabela de índice em modo assíncrono. A latência de sincronização fica na faixa de alguns milissegundos.

Para atender aos requisitos dos usuários de consistência forte durante consultas de dados, o Tablestore oferece o recurso de índice secundário local. Ao usar o índice secundário local, o Tablestore sincroniza automaticamente os dados das colunas indexadas e das colunas de chave primária de uma tabela de dados com a tabela de índice em modo síncrono. Após gravar os dados na tabela de dados, você pode consultar imediatamente os dados na tabela de índice.

A tabela a seguir descreve as diferenças entre índices secundários globais e locais em termos de modo de sincronização, requisitos da primeira coluna de chave primária, latência de sincronização e consistência de leitura.

Item

Índice secundário global

Índice secundário local

Modo de sincronização

Modo assíncrono

Modo síncrono

Requisitos da primeira coluna de chave primária

A primeira coluna de chave primária de um índice secundário global pode ser qualquer coluna de chave primária ou coluna predefinida da tabela de dados para a qual o índice secundário foi criado.

A primeira coluna de chave primária de um índice secundário local deve ser igual à primeira coluna de chave primária da tabela de dados para a qual o índice secundário foi criado.

Latência de sincronização

Na faixa de alguns milissegundos

Tempo real

Consistência de leitura

Consistência eventual

Consistência forte

Recursos

Os recursos dos índices secundários incluem índices de coluna única, índices combinados, sincronização de índice, índices cobertos, índices que contêm dados históricos das tabelas de dados e índices esparsos. A tabela a seguir descreve esses recursos.

Recurso

Descrição

Índice de coluna única e índice combinado

Você pode criar um índice em uma ou mais colunas de uma tabela de dados.

Sincronização de índice

Índices secundários globais e locais sincronizam dados de maneiras diferentes.

  • Ao usar o recurso de índice secundário global, o Tablestore sincroniza automaticamente os dados das colunas indexadas e das colunas de chave primária de uma tabela de dados com a tabela de índice em modo assíncrono. A latência de sincronização fica na faixa de alguns milissegundos.

  • Ao usar o recurso de índice secundário local, o Tablestore sincroniza automaticamente os dados das colunas indexadas e das colunas de chave primária de uma tabela de dados com a tabela de índice em modo síncrono. Após gravar os dados na tabela de dados, você pode consultar imediatamente os dados na tabela de índice.

Índice coberto

Tabelas de índice podem conter colunas de atributo. Ao criar uma tabela de dados, você pode definir colunas predefinidas. Em seguida, crie uma tabela de índice com base nas colunas predefinidas e nas colunas de chave primária da tabela de dados. É possível especificar algumas colunas predefinidas da tabela de dados como colunas de atributo de uma tabela de índice, ou não especificar nenhuma coluna de atributo para a tabela de índice.

Se você especificar colunas predefinidas da tabela de dados como colunas de atributo da tabela de índice, poderá consultar os valores dessas colunas diretamente na tabela de índice, sem precisar consultar a tabela de dados.

Índice com dados históricos da tabela de dados

Você pode criar uma tabela de índice que contenha os dados históricos de uma tabela de dados.

Índice esparso

Você pode especificar uma coluna predefinida de uma tabela de dados como coluna de atributo de uma tabela de índice. Se uma linha na tabela de dados não contiver a coluna predefinida, mas contiver todas as colunas de chave de índice, um índice será criado para essa linha. No entanto, não é possível criar um índice para uma linha se ela não contiver algumas colunas de chave de índice.

Por exemplo, uma tabela de dados contém as colunas de chave primária PK0, PK1 e PK2, e as colunas predefinidas Defined0, Defined1 e Defined2. Você cria uma tabela de índice com as colunas de chave de índice PK0, Defined0 e Defined1, e a coluna de atributo Defined2.

  • Se uma linha da tabela de dados contiver Defined0 e Defined1, mas não contiver Defined2, um índice será criado para essa linha.

  • Se uma linha da tabela de dados contiver Defined0 e Defined2, mas não contiver Defined1, não será possível criar um índice para essa linha.

Limites

Para mais informações, consulte Limites de índices secundários.

Observações de uso

Observações sobre a criação de tabelas de índice

  • O sistema adiciona automaticamente as colunas de chave primária da tabela de dados que não foram especificadas como colunas de chave de índice à tabela de índice como colunas de chave primária. Ao fazer a varredura de dados em uma tabela de índice, especifique os valores das colunas de chave primária. Os valores das colunas de chave primária variam de infinito negativo a infinito positivo.

    Ao criar uma tabela de índice, você precisa especificar apenas as colunas de chave de índice. O sistema adiciona automaticamente todas as colunas de chave primária da tabela de dados à tabela de índice. Por exemplo, uma tabela de dados contém as colunas de chave primária PK0 e PK1 e a coluna predefinida Defined0.

    Ao usar o recurso de índice secundário global, você pode criar um índice nas colunas de acordo com seus requisitos de negócio.

    • Se você criar um índice na coluna Defined0, o Tablestore gera uma tabela de índice cujas colunas de chave primária são Defined0, PK0 e PK1.

    • Se você criar um índice nas colunas Defined0 e PK1, o Tablestore gera uma tabela de índice cujas colunas de chave primária são Defined0, PK1 e PK0.

    • Se você criar um índice na coluna PK1, o Tablestore gera uma tabela de índice cujas colunas de chave primária são PK1 e PK0.

    Ao usar o recurso de índice secundário local, a primeira coluna de chave primária da tabela de índice deve ser igual à primeira coluna de chave primária da tabela de dados para a qual a tabela de índice foi criada.

    • Se você criar um índice nas colunas PK0 e Defined0, o Tablestore gera uma tabela de índice cujas colunas de chave primária são PK0, Defined0 e PK1.

    • Se você criar um índice nas colunas PK0, PK1 e Defined0, o Tablestore gera uma tabela de índice cujas colunas de chave primária são PK0, PK1 e Defined0.

    • Se você criar um índice nas colunas PK0 e PK1, o Tablestore gera uma tabela de índice cujas colunas de chave primária são PK0 e PK1.

  • Você pode especificar colunas predefinidas de uma tabela de dados como colunas de atributo da tabela de índice criada para a tabela de dados, com base nos seus modos de consulta e requisitos de custo.

    Após especificar uma coluna predefinida da tabela de dados como coluna de atributo da tabela de índice, você pode consultar os valores dessa coluna diretamente na tabela de índice, sem precisar consultar a tabela de dados. No entanto, isso aumenta os custos de armazenamento. Se uma coluna predefinida da tabela de dados não for especificada como coluna de atributo da tabela de índice, será necessário consultar os valores dessa coluna na tabela de dados.

  • Ao usar o recurso de índice secundário global, especifique uma coluna da tabela de dados como primeira coluna de chave primária da tabela de índice de acordo com seus requisitos de negócio.

    • Se a primeira coluna de chave primária de uma tabela de índice contiver valores de data ou hora, a velocidade de atualização da tabela de índice poderá diminuir. Portanto, recomenda-se não especificar esse tipo de coluna como primeira coluna de chave primária de uma tabela de índice.

      Recomenda-se aplicar hash na coluna que contém valores de data ou hora e criar um índice na coluna com hash. Se precisar aplicar hash, use o DingTalk para entrar em contato com o suporte técnico do Tablestore.

    • Recomenda-se não especificar uma coluna de baixa cardinalidade ou uma coluna com valores enumerados como primeira coluna de chave primária de uma tabela de índice. Por exemplo, se você especificar a coluna de gênero como primeira coluna de chave primária de uma tabela de índice, a escalabilidade horizontal da tabela será limitada. Como resultado, o desempenho de gravação será comprometido.

Observações sobre o uso de tabelas de índice

  • Ao gravar dados em uma tabela de dados que possui uma tabela de índice, siga as regras abaixo. Caso contrário, os dados não poderão ser gravados na tabela de dados.

    • Não é possível especificar um número de versão para os dados gravados na tabela de dados.

    • Linhas duplicadas com o mesmo valor de chave primária não podem existir em uma operação de gravação em lote.

  • Uma tabela de índice pode ser usada apenas para consultar dados. Não é possível gravar dados em uma tabela de índice.

Operações de API

A tabela a seguir descreve as operações de API que o Tablestore fornece para gerenciar índices secundários.

Operação de API

Descrição

CreateIndex

Cria uma tabela de índice para uma tabela de dados existente.

null
  • Ao chamar a operação CreateIndex, você pode especificar se deseja incluir os dados históricos de uma tabela de dados na tabela de índice criada.

  • Ao chamar a operação CreateTable, você pode criar uma ou mais tabelas de índice junto com a tabela de dados.

GetRow

Lê uma linha de dados de uma tabela de índice.

GetRange

Lê dados dentro de um intervalo especificado de uma tabela de índice.

DropIndex

Exclui uma tabela de índice de uma tabela de dados.

null

Antes de chamar a operação DeleteTable para excluir uma tabela de dados, exclua primeiro as tabelas de índice criadas para essa tabela. Caso contrário, não será possível excluir a tabela de dados.

Usar índices secundários

Você pode usar índices secundários por meio do console do Tablestore, da CLI do Tablestore ou dos SDKs do Tablestore. Para mais informações, consulte os seguintes tópicos:

Faturamento

Ao usar índices secundários, você é cobrado pelo uso de armazenamento dos dados de índice e pelo throughput de leitura gerado ao consultar dados de índice. Para mais informações, consulte Itens faturáveis dos índices secundários.

Referências

Para consultar dados de maneira mais eficiente e flexível, use o recurso de índice de pesquisa. O recurso de índice de pesquisa oferece vários métodos de consulta, incluindo consulta booleana, pesquisa de texto completo, consulta por prefixo e consulta fuzzy. Para mais informações, consulte Índice de pesquisa.

Perguntas frequentes