【发布时间】:2016-02-11 00:11:48
【问题描述】:
用户注册时,邮箱必须是唯一的,注册检查时间最长为1秒。
Facebook / Google 如何设法在具有数十亿行的表上执行选择,并检索即时响应。
是不是就这么简单:
select email from users where email = "xxx@yyy.zzz" limit 1
在email 字段上有一个索引并在超快的服务器上运行这个查询可以解决问题吗?
或者还有更多内容?
【问题讨论】:
-
跨多个节点/服务器对数据进行分区。分区通常是一些可以合理分散大型数据集的键。所有喜欢这个分区的花椰菜的人。然后,您可以轻松缩小搜索范围。甚至更好...所有电子邮件的人在此服务器上都以 s,t,r 开头。
-
@ahojvole 如果我记得他们使用技巧根据某些条件将其拆分到多个数据库。此外,使用 noSQL 等技术可以提高速度,DB 的工作方式是减去集合和二叉树,这些都有助于快速召回,同时保持可扩展性