MySQL表索引

ras*_*usx 1 php mysql optimization performance

我有一个名为'users'的mysql tabel.有两个明显的领域:'user'和'pass'.

我的身份验证查询是这样的:

"SELECT pass FROM users WHERE user = ? AND pass = ?"
Run Code Online (Sandbox Code Playgroud)

我想索引可以加快查询速度.我应该仅索引"用户"字段还是"通过"字段?

还比使用PHP字符串比较更快地比较密码和SQL查询.

Ser*_*sev 5

首先,您不应该以纯文本格式存储密码.存储密码哈希值.

第二,指数userpass将有所帮助.但是,如果您创建复合索引(user, pass),它将成为此查询的覆盖索引.这意味着可以直接从索引提供查询,而无需咨询数据文件.