Mysql 分库分表后需要跨库 join 的问题,求指教!

2020-07-03 12:39:06 +08:00
 orzxxx

我们有张用户信息表快 1000W 数据了,而且每天还在增长,所以决定进行分表。 但另外有很多 100W 不到的小表需要关联用户信息。我考虑了几个方案,希望大家给点建议。 1.把这些小表也按照相同维度分表,这样就不会跨库了,但是感觉小表没必要分,还会带来分页查询问题。 2.分两次,先把信息查出来,在进行一次 join 操作,可能要 join 多次。 3.上缓存,先把信息查出来再一个个走缓存,要考虑缓存一致的问题。 大家有更好的方案吗?

6438 次点击
所在节点    MySQL
29 条回复
leonidas
2020-07-03 17:05:10 +08:00
楼主问分库分表连表查询的解决方案,楼上全是 1000 万太少了,不分。。。

那我替楼主改下吧,100 亿的数据分库分表如何连表查询
NoString
2020-07-03 17:16:42 +08:00
@leonidas #21 100 亿建议走搜索引擎,如果是时间近距查询就 es 如果是字段列查询就 hbase 哈哈哈
gadsavesme
2020-07-03 17:20:05 +08:00
1000w 数据正常的分区就可以了吧。没明白为什么和小表 join 会跨库。和用户表不在一个库里吗?个人觉得要么做一些冗余的字段,要么就是用户表做一下冷热垂直拆分,join 的那些字段单独拆成一张表呗不做分区。1000w 数据走索引应该不会出现性能上的瓶颈才是
chendy
2020-07-03 17:31:24 +08:00
@cubecube #17 太真实了
cubecube
2020-07-03 17:39:44 +08:00
@chendy 关键是公司有 oracle 授权,我说直接 oracle 快速上线吧,结果 mysql 愣是分 100 多个表。商城性质,中间处理各种跨库场景,天天加班,延期。。最后,你懂的。
dongisking
2020-07-03 18:02:03 +08:00
@phpbest 分区的横向扩展性差,等于加了个磁盘,io 没变化
freelancher
2020-07-03 23:53:09 +08:00
1000W 用户没必要分库分表啊。优化做好来,请个专门搞这个的 DBA 就好了。给自己加活。

兼职 DBA 在这里。。。举手。
lance6716
2020-07-05 15:50:19 +08:00
换 tidb
phpbest
2020-07-06 09:57:23 +08:00
@dongisking 那库内分表有作用吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/686831

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX