Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ TaurusDB/ Perguntas frequentes/ Uso do banco de dados/ Como gravar dados ou criar índices para uma tabela ultragrande?
Atualizado em 2025-05-23 GMT+08:00

Como gravar dados ou criar índices para uma tabela ultragrande?

Gravação de dados em uma tabela ultragrande

Para uma tabela com dezenas de milhões ou centenas de milhões de registros de dados, é aconselhável usar os seguintes métodos para melhorar a eficiência de gravação de dados:
  • Exclua índices desnecessários.

    Quando os dados são atualizados, os dados de índice também são atualizados. Para uma tabela com grandes quantidades de dados, evite criar muitos índices, pois isso pode retardar o processo de atualização. Exclua índices desnecessários com base na avaliação do serviço.

  • Use a inserção em lote para inserir vários registros de dados.

    Isso ocorre porque a inserção em lote requer apenas uma única solicitação remota ao banco de dados.

    Exemplo:

    insert into tb1 values(1,'value1');
    insert into tb2 values(2,'value2');
    insert into tb3 values(3,'value3');

    Após a otimização:

    insert into tb values(1,'value1'),(2,'value2'),(3,'value3');
  • Ao inserir vários registros de dados, controle manualmente as transações.

    Ao controlar manualmente as transações, várias unidades de execução podem ser mescladas em uma única transação, evitando a sobrecarga de várias transações e garantindo a integridade e a consistência dos dados.

    Exemplo:

    insert into table1 values(1,'value1'),(2,'value2'),(3,'value3');
    insert into table2 values(4,'value1'),(5,'value2'),(6,'value3');
    insert into table3 values(7,'value1'),(8,'value2'),(9,'value3');

    Após a otimização:

    start transaction;
    insert into table1 values(1,'value1'),(2,'value2'),(3,'value3');
    insert into table2 values(4,'value1'),(5,'value2'),(6,'value3');
    insert into table3 values(7,'value1'),(8,'value2'),(9,'value3');
    commit;

    Ter muitas instruções mescladas pode levar a grandes transações, o que bloqueará a tabela por muito tempo. Avalie as necessidades de serviço e controle o número de instruções em uma transação de acordo.

  • Ao inserir dados, insira as chaves primárias em ordem sequencial. Você pode usar AUTO_INCREMENT.

    A inserção de chaves primárias em uma ordem aleatória pode causar divisão de página, o que pode afetar negativamente o desempenho.

    Exemplo:

    Inserção de chaves primárias em uma ordem aleatória: 6 2 9 7 2

    Inserção de chaves primárias em ordem sequencial: 1 2 4 6 8

  • Evite usar UUIDs ou outras chaves naturais, como números de carteira de identidade, como chaves primárias.

    Os UUIDs gerados a cada vez não são ordenados e inseri-los como chaves primárias pode causar divisão de página, o que pode afetar negativamente o desempenho.

  • Evite modificar chaves primárias durante as operações de serviço.

    Modificar chaves primárias requer a modificação da estrutura do índice, o que pode ser caro.

  • Reduza o comprimento das chaves primárias o máximo possível, se a empresa permitir.
  • Não use chaves estrangeiras para manter relacionamentos de chaves estrangeiras. Em vez disso, use programas.
  • Separe as operações de leitura e gravação. Coloque operações de leitura em réplicas de leitura para evitar a inserção lenta causada por I/Os.

Criação de índices para uma tabela ultragrande

Para uma tabela com dezenas de milhões ou centenas de milhões de registros de dados, é aconselhável usar os seguintes métodos para melhorar a eficiência da criação de índice:

  • Mantenha o campo de índice o menor possível.
  • Selecione uma coluna com alta distinção como a coluna de índice.
  • Se cada campo da tabela não puder garantir exclusividade, não puder garantir NOT NULL ou não for adequado para indexação, crie uma coluna de incremento automático de ID personalizada como chave primária, o que garantirá automaticamente a inserção ordenada.
  • Para criar um índice, insira os dados primeiro e, em seguida, execute o comando alter table add index.
  • Use o DDL paralelo do TaurusDB para criar um índice. Quando os recursos de hardware do banco de dados estão ociosos, você pode usar a DDL paralela para acelerar a execução da DDL, impedindo que as operações DML subsequentes sejam bloqueadas e encurtando a janela de operação da DDL.