面试被问到了一个分表问题,有一个用户表如下:
user(id,name,age,email,pwd,phone);
表里面有10亿条数据,要求用户能通过email和phone 两种方式登录,该如何分表?
面试被问到了一个分表问题,有一个用户表如下:
user(id,name,age,email,pwd,phone);
表里面有10亿条数据,要求用户能通过email和phone 两种方式登录,该如何分表?
4 回答1.5k 阅读✓ 已解决
8 回答1.3k 阅读
3 回答1.1k 阅读✓ 已解决
3 回答871 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.6k 阅读
1 回答885 阅读✓ 已解决
我想了一种思路,不知是否可行。
再独立出来两个表,用做索引。
这样,原表可以按照id来做hash。两个新表的话,分别按照
email
和phone
来做hash。查找的话,先按照
email
或phone
来做hash,找到对应的id
,然后根据id
再去找用户信息。但是这样的话,修改数据就可能有些费时了。
总之,根据
耗时守恒定理
来说,这个地方省的事,肯定要在其他地方还的?~