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.