Добавление индекса в таблицу MySQL - PullRequest
1 голос
/ 03 января 2009

Документация 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      |         |     
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

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

Ответы [ 2 ]

6 голосов
/ 03 января 2009

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

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


Вы также должны прочитать больше о хранении паролей.

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

1 голос
/ 03 января 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...