Todos os produtos
Search
Central de documentação

Tablestore:Criar um índice secundário

Última atualização: Jul 03, 2026

O recurso de índice secundário permite consultar dados pelas colunas de chave primária de uma tabela de dados e pelas colunas de índice de um índice secundário. Para acelerar consultas em colunas de atributo, crie um índice secundário para a tabela de dados. Ao criar um índice secundário, defina suas colunas de índice ou colunas de atributo como colunas predefinidas especificadas durante a criação da tabela.

Nota
  • Os índices secundários dividem-se em globais e locais. Para mais informações, consulte Visão geral.

  • Você também pode criar tabelas de índice ao criar uma tabela de dados chamando a operação CreateTable. Para mais informações, consulte Criar tabelas de dados.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Uma instância OTSClient inicializada. Para mais informações, consulte Inicializar uma instância OTSClient.

  • Uma tabela de dados com maxVersions definido como 1. O parâmetro timeToLive da tabela de dados deve atender a uma das seguintes condições:

    • timeToLive definido como -1, indicando que os dados nunca expiram.

    • timeToLive definido com um valor diferente de -1 e operações de atualização proibidas na tabela de dados.

  • Colunas predefinidas especificadas para a tabela de dados.

Observações de uso

  • O Tablestore SDK for .NET oferece suporte apenas a índices secundários globais. Para criar um índice secundário local, use o Tablestore SDK para outra linguagem de programação, o console do Tablestore ou o Tablestore CLI.

  • O nome da tabela de índice deve ser diferente de qualquer nome existente de tabela de séries temporais ou tabela de dados.

  • Ao criar um índice secundário, o Tablestore adiciona automaticamente as colunas de chave primária da tabela de dados não especificadas como colunas de índice ao índice secundário como colunas de chave primária.

Parâmetros

Parâmetro

Descrição

mainTableName

Nome da tabela de dados.

indexMeta

Esquema da tabela de índice. Este parâmetro contém os seguintes campos:

  • indexName: nome da tabela de índice.

  • primaryKey: chave primária da tabela de índice, composta pela combinação de colunas predefinidas e todas as colunas de chave primária da tabela de dados.

  • definedColumns: colunas de atributo da tabela de índice, correspondentes a um subconjunto das colunas predefinidas da tabela de dados.

  • indexUpdateMode: modo de atualização da tabela de índice. Valor válido: IUM_ASYNC_INDEX.

  • indexType: tipo da tabela de índice. Valor válido: IT_GLOBAL_INDEX.

Exemplos

O exemplo a seguir cria um índice secundário global que exclui dados existentes da tabela de dados. A tabela de dados possui duas colunas de chave primária: pk1 e pk2. A coluna de índice é col1 e a coluna de atributo é col2. A tabela de índice resultante terá três colunas de chave primária (col1, pk1 e pk2) e uma coluna de atributo (col2).

public static void CreateGlobalIndex(OTSClient otsClient, String TableName, String IndexName)
{
    Console.WriteLine("Start create globalIndex...");
    IndexMeta indexMeta = new IndexMeta(IndexName);
    // Specify a primary key column for the index table. 
    indexMeta.PrimaryKey = new List<string>() { "col1" };
    // Specify an attribute column for the index table. 
    indexMeta.DefinedColumns = new List<string>() { "col2" };
    //indexMeta.IndexType = IndexType.IT_GLOBAL_INDEX;
    //indexMeta.IndexUpdateModel = IndexUpdateMode.IUM_ASYNC_INDEX;

    CapacityUnit reservedThroughput = new CapacityUnit(0, 0);
    CreateGlobalIndexRequest request = new CreateGlobalIndexRequest(TableName, indexMeta);
    otsClient.CreateGlobalIndex(request);

    Console.WriteLine("Global Index is created,tableName: " + TableName + ",IndexName:" + IndexName);

 }

Próximos passos