【发布时间】:2012-09-25 22:59:45
【问题描述】:
我想知道 Facebook(超过 9 亿用户)、Twitter(超过 3 亿用户)等网站如何从数据库中选择用户的登录名和密码来检查登录凭据是否正确用户输入是正确的。例如,在您使用的 SQL 中:
SELECT * FROM Persons
WHERE username=[username from user]
and password = [password from user]
但在像 Facebook 这样的更大系统中,他们是否会选择所有 9 亿用户并在用户登录时检查单个用户的登录凭据?如果没有,他们会怎么做?
PS:
问是因为我是这个领域的新手。我知道 SQL,但想知道拥有数百万用户的系统如何检查其用户的登录凭据以及用户从网站搜索某些特定信息的其他相关情况。
【问题讨论】:
-
1:它们不以纯文本形式存储密码。
-
没有。您需要了解索引。如果您对性能感兴趣,您还应该了解内存数据库和并行模拟。
-
不只是使用数据库的网站:link
-
只要设置正确,大多数数据库系统都可以处理数百万条记录并极其高效地找到一行
-
@Pablo 如果他们不只使用数据库,那么他们还使用什么?告诉我更多