在 MySQL 数据库中,我必须维护我有这个带有两个索引的表
CREATE TABLE users (
id INTEGER UNSIGNED NOT NULL UNIQUE AUTO_INCREMENT,
-- some attributes
nickname VARCHAR (20) NOT NULL UNIQUE,
password VARCHAR (20) NOT NULL,
-- other attributes
PRIMARY KEY (id),
INDEX auth (nickname, password),
INDEX region_id (region)
);
我的问题是关于auth
索引。它是一个多列索引,但由于 nickname
是 UNIQUE
,password
是不是有些多余?为什么要在 nickname
和 password
上建立索引?为什么不仅 nickname
因为它是 UNIQUE
?
最佳答案
有了这个两列索引mysql就可以运行查询进行身份验证检查(不选择数据的查询,只有id
或count(id)
按用户名和密码)不实际访问表中的数据,仅通过索引本身,这是最快的
关于MySQL 关于用户名、密码的多列索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34174931/