【发布时间】:2011-05-07 05:52:58
【问题描述】:
我正在运行一个社交网站,我目前在用户表中拥有大部分主要用户数据(真实姓名、用户名、电子邮件、密码、性别等)。在设计方面,将用户名+密码移动到单独的表中是否会提高性能?
我正在使用 mysql。
【问题讨论】:
标签: mysql database-design
我正在运行一个社交网站,我目前在用户表中拥有大部分主要用户数据(真实姓名、用户名、电子邮件、密码、性别等)。在设计方面,将用户名+密码移动到单独的表中是否会提高性能?
我正在使用 mysql。
【问题讨论】:
标签: mysql database-design
由于表更小,只需要用户名和密码的身份验证查询会运行得稍微快一些。
但是,如果您在(username, password_hash) 上创建复合索引,它会更快,因为这样的查询:
SELECT password_hash
FROM users
WHERE username = 'myusername'
只需要运行索引(它会在计划中显示using index)。
【讨论】:
user=? and pass=? 的查询都会使用用户名的唯一索引非常快地返回。