我正在研究如何快速地从我的sql数据库中匹配用户名和密码.我正在寻找facebookgoogletwitter如何能够让你在几秒钟内登录,在他们有数百万和数百万的使用时间.他们使用什么类型的算法? 为什么他们可以快速识别你已经输入了正确的用户名密码组合?以及为什么系统快速识别你已经输入了错误的密码username?他们使用的方法是什么?
你通常会使用这样的查询。
select 1 from users where username = ? and password = ?
其中的问号代表查询的参数(你可能应该使用一些哈希机制来处理密码)。如果查询返回一些内容,那么你就知道凭证是正确的。如果没有返回任何行,则说明登录失败。
为了保证性能,你只需要在 users(username, password)
. 即使表中有几百万行,这应该是非常快的,因为数据库只需查看索引就可以执行查询。