Pergunta

A documentação do MySQL não é muito clara sobre este assunto. Eu quero adicionar um índice para uma tabela existente. A tabela é uma tabela de usuário com o ID de login e senha e eu quero criar um índice para que isso logging otimizar em.

Isto é como eu pensei que eu iria experimentá-lo:

mysql> ALTER TABLE `users` ADD INDEX(`name`,`password`);

Isto criou:

mysql> show index from karmerd.users;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+   
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |    
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+    
| users |          0 | PRIMARY  |            1 | id          | A         |           2 |     NULL | NULL   |      | BTREE      |         |     
| users |          1 | name     |            1 | name        | A         |           2 |     NULL | NULL   |      | BTREE      |         |     
| users |          1 | name     |            2 | password    | A         |           2 |     NULL | NULL   | YES  | BTREE      |         |     
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

Será que isso conseguir o que eu estava tentando fazer? (Logging Optimize in?) Antes eu só tinha uma chave primária em um um campo chamado 'id'.

Foi útil?

Solução

Sim, este alcançado criando um índice. O índice é denominado "name" (se você não dá o índice de um nome, ele tenta usar a primeira coluna que você especificar no índice). O índice é um compósito de duas colunas:. name na posição 1, e password na posição 2

Quanto a saber se ou não Isto irá otimizar registrá-lo, isso depende de como suas consultas pode ou não pode usar o índice. Você também deve aprender sobre como analisar consultas com EXPLAIN .


Você também deve ler mais sobre o armazenamento de senhas.

Aqui está um bom blog sobre o assunto: " você está armazenando Provavelmente senhas incorretamente "

Outras dicas

A menos que nomes de usuários não são exclusivos em sua aplicação, eu não acho que isso é realmente fazer sentido para o índice "password"; o índice será maior e inserções será mais lento para qualquer valor acrescentado.

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