restrição exclusiva no MySQL
-
10-07-2019 - |
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
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.