当用户注册时,电子邮件必须是唯一的,注册检查最多只需要1秒。
Facebook / Google如何设法在数十亿行的桌面上执行选择,检索即时响应。
是否如此简单:
select email from users where email = "xxx@yyy.zzz" limit 1
在email
字段上有索引并在超高速服务器上运行此查询是否可以解决问题?
或者还有更多吗?
答案 0 :(得分:0)
简短的回答,是的。虽然有这么多数据,但我想你可能想要查看分片等内容以使事情变得更快
使用SQL时,可以通过使用主键确保索引和唯一性。然后,驱动数据库的后端使用这些主键,以确保表中没有重复。因为密钥用于索引表中的行,这也意味着即使是大量数据集的查找也会因为这些索引而更快。将主键设置为电子邮件地址,在这种情况下你应该很好。
即使使用像Mongo,Cassandra等NoSQL数据库,也需要在数据上创建索引,以便快速查找。