Índice Clusterizado MySQL

Resumo : neste tutorial, você aprenderá sobre o índice clusterizado MySQL e como os índices clusterizados são gerenciados em tabelas InnoDB.

Introdução ao índice clusterizado MySQL

Normalmente, um índice é uma estrutura de dados separada, como uma árvore B, que armazena os valores-chave para pesquisas mais rápidas.

Um índice clusterizado, por outro lado, é a tabela. É um índice que impõe fisicamente a ordem das linhas da tabela.

Depois que um índice clusterizado for criado, todas as linhas da tabela serão armazenadas de acordo com as colunas-chave usadas para criar o índice clusterizado.

Como um índice clusterizado armazena as linhas em ordem de classificação, cada tabela possui apenas um índice clusterizado.

Índices clusterizados MySQL em tabelas InnoDB

Cada tabela InnoDB requer um índice clusterizado. O índice clusterizado ajuda uma tabela InnoDB a otimizar manipulações de dados como SELECT,, e .INSERTUPDATEDELETE

Ao definir uma chave primária para uma tabela InnoDB, o MySQL usa a chave primária como índice clusterizado.

Se você não tiver uma chave primária para uma tabela, o MySQL irá procurar o primeiro UNIQUEíndice onde estão todas as colunas-chave NOT NULLe usará este UNIQUEíndice como o índice clusterizado.

Caso a tabela InnoDB não possua chave primária ou UNIQUEíndice adequado, o MySQL gera internamente um índice clusterizado oculto nomeado GEN_CLUST_INDEXem uma coluna sintética que contém os valores de ID de linha.

Como resultado, cada tabela InnoDB sempre possui um e somente um índice clusterizado.

Todos os índices, exceto o índice clusterizado, são índices não clusterizados ou índices secundários. Nas tabelas InnoDB, cada registro no índice secundário contém as colunas de chave primária da linha, bem como as colunas especificadas no índice não clusterizado. O MySQL usa esse valor de chave primária para pesquisas de linha no índice clusterizado.

Portanto, é vantajoso ter uma chave primária curta, caso contrário os índices secundários ocuparão mais espaço. Normalmente, a coluna inteira de incremento automático é usada para a coluna de chave primária.

Resumo

  • Um índice de cluster é a própria tabela, que impõe a ordem das linhas na tabela.
  • Uma tabela InnoDB sempre possui um índice clusterizado.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *