老师您好,感觉你这里会有些问题,t_user_phone表

来源:6-18 用户手机号注册登录RPC接口测试

WittChen

3天前

下面是老师的代码:图片描述
然后是老师的配置:
图片描述
老师讲userId设为片键,我在没看这部分课程的时候也是这么设计的,可如果这样,我们是分表的,也就是说两张表里理论上是可能出现相同的手机号,唯一键的设置只对一张表有用,这是第一点。
第二点,也就是我不太能忍受的一点,当代码运行查询后,会全表UNION ALL,连接一百张表查询。。。。。。
图片描述
老师的代码我没运行过,但应该和我的一样,因为我也是这么写的。
所以,我想用手机号作为片键,当初用userid我的考虑是,user表和user_phone表连表查询时,因为片键相同是同一张表。
可现在想来还是算了,在分库分表的情况下,还是打消连表查询的念头吧,老师是怎么想的呢?

写回答

1回答

Danny_Idea

15小时前

之前这里写的时候考虑到注册后会有个初始化账号流程,需要全部分表扫描查询手机号是否注册过。union all里面可以设置每次分发多少个线程去并行查询。

但是这种做法其实也不好,查询耗时比较高。更佳的做法应该是把用户的手机号,用户id都同步到es里面,es支持分布式存储,扩展性和性能都更强。
0
1
WittChen
非常感谢!
14小时前
共1条回复

SpringCloudAlibaba高并发仿斗鱼直播平台实战

SpringCloudAlibaba高并发仿斗鱼直播平台实战

453 学习 · 389 问题

查看课程