为了账号安全,请及时绑定邮箱和手机立即绑定

跪求!mysql的表数量巨大,这种情况下用户表该如何分表?求解答!

跪求!mysql的表数量巨大,这种情况下用户表该如何分表?求解答!

烙印99 2019-06-09 09:52:25
面试被问到了一个分表问题,有一个用户表如下: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再去找用户信息。
但是这样的话,修改数据就可能有些费时了。总之,根据耗时守恒定理来说,这个地方省的事,肯定要在其他地方还的?~
                            
查看完整回答
反对 回复 2019-06-09
  • 2 回答
  • 0 关注
  • 438 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信