【问题标题】:MySQL table indexingMySQL 表索引
【发布时间】:2012-04-28 08:00:15
【问题描述】:

我有一个名为“用户”的 mysql 表。有两个明显的字段:'user' 和 'pass'。

我的认证查询是这样的:

"SELECT pass FROM users WHERE user = ? AND pass = ?"

我认为索引可以加快查询速度。我应该只索引“用户”字段还是“通过”字段?

使用 sql 查询比较密码也比使用 PHP 字符串比较快。

【问题讨论】:

    标签: php mysql performance optimization


    【解决方案1】:

    首先,您不应该以纯文本形式存储密码。改为存储密码哈希。

    其次,userpass 上的索引会有所帮助。但是如果你在(user, pass) 上创建一个复合索引,它将成为这个查询的覆盖索引。这意味着可以直接从索引中提供查询,而无需查阅数据文件。

    【讨论】:

    • 谢谢,@Mchl,我错过了 :-)
    • 我没有以纯文本形式存储密码。那将是愚蠢的。 :) 所以基本上复合索引最好用?
    • 我会调查的。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    相关资源
    最近更新 更多