Sobes.tech
Junior — Middle

Como é que o estado do índice na base de dados muda após operações de exclusão e reinserção de registos numa tabela SQL?

sobes.tech IA

Resposta da IA

Após a remoção de registos de uma tabela SQL, o estado dos índices altera-se da seguinte forma:

  • Os registos removidos são eliminados do índice, ou seja, as chaves correspondentes e as referências às linhas são removidas.
  • No entanto, a libertação física do espaço na estrutura do índice pode não ocorrer imediatamente, dependendo do sistema de gestão de bases de dados (SGBD) e do tipo de índice.

Ao inserir novamente registos:

  • Se forem inseridos novos registos com os mesmos valores de chaves, eles são adicionados ao índice como novos elementos.
  • Em alguns SGBD (por exemplo, com chaves auto-incrementadas), os novos registos podem obter novos valores de chaves, o que afeta o índice.

Resumindo, o índice reflete o estado atual da tabela — contém apenas registos existentes. Em operações intensivas de remoção e inserção, pode ser necessário reorganizar ou reconstruir periodicamente o índice para otimizar o desempenho.

Exemplo: se na tabela houver um índice na coluna "id" e remover um registo com id=5, o índice deixará de conter esse registo. Ao inserir um novo registo com id=5 (se permitido), o índice será atualizado para incluir o novo registo.