面试被问到了一个分表问题,有一个用户表如下:user(id,name,age,email,pwd,phone);表里面有10亿条数据,要求用户能通过email和phone两种方式登录,该如何分表?
2 回答
jeck猫
TA贡献1909条经验 获得超7个赞
我想了一种思路,不知是否可行。再独立出来两个表,用做索引。|hash_email|id||hash_phone|id|这样,原表可以按照id来做hash。两个新表的话,分别按照email和phone来做hash。查找的话,先按照email或phone来做hash,找到对应的id,然后根据id再去找用户信息。但是这样的话,修改数据就可能有些费时了。总之,根据耗时守恒定理来说,这个地方省的事,肯定要在其他地方还的?~
添加回答
举报
0/150
提交
取消