Pergunta

É uma restrição exclusiva de um índice por padrão? Se não, faz uma restrição exclusiva tem os mesmos resultados de desempenho como uma coluna indexada ao usá-lo na cláusula SELECT ... WHERE?

Graças

Foi útil?

Solução

A única restrição é necessariamente um índice. Você normalmente defini-lo como "UNIQUE INDEX". Um índice seria necessário em qualquer caso, para implementar de forma eficiente uma restrição exclusiva, portanto, ter um é nenhuma desvantagem.

Outras dicas

Uma restrição é realmente muito diferente de um índice: Ele apenas diz que o MySQL é suposto para impor exclusividade para você. Um índice no entanto (embora possa ser único) é sobre a ordem física no seu disco rígido, ou cerca de estruturas adicionais (geralmente uma árvore) que permite a busca eficiente na coluna.

Você pode no entanto ser confuso tudo isso com chaves primárias que definem uma (geralmente em cluster) índice exclusivo.

A única restrição é uma forma de expressar o fato de que alguma coisa (como uma combinação de valores de atributos) deve ser exclusivo dentro do escopo de uma relação inteira ( "table")).

Essa é a nível de design lógico.

Um índice é um meio possivelmente útil para ajudar a executar essa restrição.

Essa é a nível de design físico.

Alguns produtos de DBMS pode inferir certas construções de design físicas, tais como a presença de algum índice, a partir da presença de certas construções de design lógicos, como uma restrição UNIQUE. Outras não.

UNIQUE é realmente uma restrição em um índice, então sim, UNIQUE implica que há um índice no campo que você está impondo exclusividade por diante.

Confira a restrição de chave primária antes de começar a usar restrições exclusivas.

A restrição de chave primária equivale a declarar uma restrição exclusiva e uma restrição de não nulo. Se houver mais de uma coluna na chave primária, cada coluna recebe uma restrição de não nulo, mas a restrição exclusiva se aplica a todas as colunas em conjunto.

Quando você declarar uma chave primária, o SGBD vai criar um índice para você. Você pode deixar cair o índice se você quiser, mas você vai obter um desempenho horrível quando o SGBD faz varreduras de tabela para verificar se há singularidade.

restrições de chave primária impor a integridade entidade, enquanto as referências (chave estrangeira) restrições impor a integridade referencial. Juntos, eles percorrer um longo caminho no sentido de garantir a integridade dos dados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top