MySQL文档对此并不十分清楚.我想为现有表添加索引.该表是一个带有登录ID和密码的用户表,我想为此创建一个索引来优化登录.
这就是我以为我会尝试的方式:
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'的字段上有一个主键.
是的,这实现了创建索引.索引名为" name
"(如果您没有为索引指定名称,它会尝试使用您在索引中指定的第一列).索引是两列的组合: name
位置1和password
位置2.
至于这是否会优化日志记录,这取决于您的查询可能会或可能不会使用索引.您还应该了解如何使用分析查询EXPLAIN
.
您还应该阅读有关存储密码的更多信息.
这是一个关于这个主题的好博客:" 你可能错误地存储了密码 "