老师您好,感觉你这里会有些问题,t_user_phone表
来源:6-18 用户手机号注册登录RPC接口测试
WittChen
3天前
下面是老师的代码:
然后是老师的配置:
老师讲userId设为片键,我在没看这部分课程的时候也是这么设计的,可如果这样,我们是分表的,也就是说两张表里理论上是可能出现相同的手机号,唯一键的设置只对一张表有用,这是第一点。
第二点,也就是我不太能忍受的一点,当代码运行查询后,会全表UNION ALL,连接一百张表查询。。。。。。
老师的代码我没运行过,但应该和我的一样,因为我也是这么写的。
所以,我想用手机号作为片键,当初用userid我的考虑是,user表和user_phone表连表查询时,因为片键相同是同一张表。
可现在想来还是算了,在分库分表的情况下,还是打消连表查询的念头吧,老师是怎么想的呢?
写回答
1回答
-
之前这里写的时候考虑到注册后会有个初始化账号流程,需要全部分表扫描查询手机号是否注册过。union all里面可以设置每次分发多少个线程去并行查询。
但是这种做法其实也不好,查询耗时比较高。更佳的做法应该是把用户的手机号,用户id都同步到es里面,es支持分布式存储,扩展性和性能都更强。0114小时前
相似问题