Вопрос

Документация MySQL не очень ясна по этому поводу.Я хочу добавить индекс к существующей таблице.Таблица представляет собой таблицу пользователей с идентификатором входа и паролем, и я хочу создать для этого индекс, чтобы оптимизировать вход в систему.

Вот как я думал, что попробую это сделать:

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

Это создало:

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      |         |     
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

Достигло ли это того, что я пытался сделать?(Оптимизировать вход в систему?) Раньше у меня был только первичный ключ в поле a под названием 'id'.

Это было полезно?

Решение

Да, это позволило создать индекс.Индекс называется "name" (если вы не даете индексу имя, он пытается использовать первый столбец, указанный вами в индексе).Индекс состоит из двух столбцов: name в позиции 1, и password в позиции 2.

Что касается того, оптимизирует ли это ведение журнала, это зависит от того, как ваши запросы могут использовать или не использовать индекс.Вам также следует узнать о том, как анализировать запросы с помощью EXPLAIN.


Вам также следует подробнее прочитать о хранении паролей.

Вот хороший блог на эту тему:"Вероятно, вы неправильно Храните Пароли"

Другие советы

Если имена пользователей не уникальны в вашем приложении, я не думаю, что действительно имеет смысл индексировать "пароль".;индекс будет больше, а вставки будут выполняться медленнее без дополнительной ценности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top