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/ GaussDB(DWS)/ Perguntas frequentes/ Uso do banco de dados/ Como excluir dados da tabela de forma eficiente?
Atualizado em 2024-05-09 GMT+08:00

Como excluir dados da tabela de forma eficiente?

Sim. TRUNCATE é mais eficiente que DELETE para excluir dados em massa.

Para obter detalhes, consulte TRUNCATE.

Função

TRUNCATE remove rapidamente todas as linhas de uma tabela de banco de dados.

Tem o mesmo efeito que DELETE incondicional, mas TRUNCATE é mais rápido, especialmente para tabelas grandes, porque não verifica tabelas.

Funções

  • TRUNCATE TABLE funciona como uma instrução DELETE sem cláusula de WHERE, ou seja, esvaziando uma tabela.
  • TRUNCATE TABLE usa menos recursos do sistema e do log de transações.
    • DELETE exclui uma linha a cada vez e registra cada exclusão no log de transações.
    • TRUNCATE TABLE exclui todas as linhas em uma tabela liberando a página de dados e registra apenas cada liberação da página de dados no log de transações.
  • TRUNCATE, DELETE e DROP são diferentes em que:
    • TRUNCATE TABLE exclui conteúdo, libera espaço, mas não exclui definições.
    • DELETE TABLE exclui conteúdo, mas não exclui definições ou libera espaço.
    • DROP TABLE exclui conteúdo e definições e libera espaço.

Exemplos

  • Crie uma tabela.
    1
    CREATE TABLE tpcds.reason_t1 AS TABLE tpcds.reason;
    

    Trunque a tabela.

    1
    TRUNCATE TABLE tpcds.reason_t1;
    

    Exclua a tabela.

    1
    DROP TABLE tpcds.reason_t1;
    
  • Crie uma tabela particionada.
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    CREATE TABLE tpcds.reason_p
    (
      r_reason_sk integer,
      r_reason_id character(16),
      r_reason_desc character(100)
    )PARTITION BY RANGE (r_reason_sk)
    (
      partition p_05_before values less than (05),
      partition p_15 values less than (15),
      partition p_25 values less than (25),
      partition p_35 values less than (35),
      partition p_45_after values less than (MAXVALUE)
    );
    

    Insira dados.

    1
    INSERT INTO tpcds.reason_p SELECT * FROM tpcds.reason;
    

    Trunque a partição p_05_before.

    1
    ALTER TABLE tpcds.reason_p TRUNCATE PARTITION p_05_before;
    

    Trunque a partição p_15.

    1
    ALTER TABLE tpcds.reason_p TRUNCATE PARTITION for (13);
    

    Trunque a tabela particionada.

    1
    TRUNCATE TABLE tpcds.reason_p;
    

    Exclua a tabela.

    1
    DROP TABLE tpcds.reason_p;