Você precisa criar explicitamente um índice ou está implícito ao definir a chave primária? A resposta é a mesma para o MyISAM e o InnoDB?
243
A chave primária é sempre indexada. É o mesmo para MyISAM e InnoDB e geralmente é válido para todos os mecanismos de armazenamento que suportam índices.
De acordo com http://dev.mysql.com/doc/refman/5.0/en/constraint-primary-key.html , parece que isso está implícito
fonte
Mesmo que isso tenha sido solicitado em 2009, achei que eu postaria uma referência real à documentação do MySQL sobre chaves primárias. http://dev.mysql.com/doc/refman/5.5/en/optimizing-primary-keys.html
Para referência ao MySQL 5.0, consulte: http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html
fonte
A chave primária é indexada implicitamente para o MyISAM e o InnoDB. Você pode verificar isso usando EXPLAIN em uma consulta que faz uso da chave primária.
fonte
Você não precisa criar explicitamente um índice para uma chave primária ... isso é feito por padrão.
fonte
Eu acho que essa é a resposta
fonte
Os índices são mais usados em colunas que são freqüentemente usadas nas cláusulas where e em qualquer tipo de classificação, como "classificar por". Você pode estar trabalhando em um banco de dados mais complexo, por isso é bom lembrar de algumas regras simples.
Os índices aceleram as cláusulas where e ordenam por. Lembre-se de pensar em COMO seus dados serão usados ao criar suas tabelas. Existem algumas outras coisas para lembrar. Se sua tabela é muito pequena, ou seja, apenas alguns funcionários, é pior usar um índice do que deixá-lo de fora e deixá-lo fazer uma varredura de tabela.
Os índices realmente são úteis apenas com tabelas com muitas linhas.
Outra coisa a lembrar, que é um golpe na situação do banco de dados de nossos funcionários, é que, se a coluna tiver um comprimento variável, os índices (assim como a maior parte do MySQL) terão um desempenho muito menos eficiente.
Não se esqueça de participar também! Os campos de junção indexados aceleram as coisas.
fonte
A chave primária é sempre indexada e exclusiva automaticamente. Portanto, tome cuidado para não criar índices redundantes.
Por exemplo, se você criou uma tabela como tal
porque você deseja indexar a chave primária e impor uma restrição de exclusividade nela, na verdade, você acaba criando três índices
foo
!fonte
Pode-se pensar em uma coluna de chave primária como qualquer outra coluna indexada com as restrições da chave primária.
Na maioria dos casos de uso, precisamos de chave primária e coluna / colunas indexadas em uma tabela, porque nossas consultas à tabela podem filtrar linhas com base em colunas / colunas que não são chave primária; nesse caso, geralmente indexamos essas colunas / colunas também.
fonte