猿问

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

面试被问到了一个分表问题,有一个用户表如下:user(id,name,age,email,pwd,phone);表里面有10亿条数据,要求用户能通过email和phone两种方式登录,该如何分表?
烙印99
浏览 439回答 2
2回答

jeck猫

我想了一种思路,不知是否可行。再独立出来两个表,用做索引。|hash_email|id||hash_phone|id|这样,原表可以按照id来做hash。两个新表的话,分别按照email和phone来做hash。查找的话,先按照email或phone来做hash,找到对应的id,然后根据id再去找用户信息。但是这样的话,修改数据就可能有些费时了。总之,根据耗时守恒定理来说,这个地方省的事,肯定要在其他地方还的?~
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答