我们有张用户信息表快 1000W 数据了,而且每天还在增长,所以决定进行分表。 但另外有很多 100W 不到的小表需要关联用户信息。我考虑了几个方案,希望大家给点建议。 1.把这些小表也按照相同维度分表,这样就不会跨库了,但是感觉小表没必要分,还会带来分页查询问题。 2.分两次,先把信息查出来,在进行一次 join 操作,可能要 join 多次。 3.上缓存,先把信息查出来再一个个走缓存,要考虑缓存一致的问题。 大家有更好的方案吗?
我们有张用户信息表快 1000W 数据了,而且每天还在增长,所以决定进行分表。 但另外有很多 100W 不到的小表需要关联用户信息。我考虑了几个方案,希望大家给点建议。 1.把这些小表也按照相同维度分表,这样就不会跨库了,但是感觉小表没必要分,还会带来分页查询问题。 2.分两次,先把信息查出来,在进行一次 join 操作,可能要 join 多次。 3.上缓存,先把信息查出来再一个个走缓存,要考虑缓存一致的问题。 大家有更好的方案吗?
|
1
做个 mysql 分区得了 还简单.
1000w 也不是特别多 |
|
baoruizheJul 3, 2020
2
对呀 1000W 不多,分库分表的前提是你的 sql 优化了,索引也加了,实在没有办法了才考虑分库分表哦,我们公司单表 3000W 了都不慌
|
|
baoruizheJul 3, 2020
3
如果要分,可以考虑使用 shardingjdbc 分库分表中间件,感觉挺不错的 使用 mysql+es 组合,复查查询的全部走 es,最后拿到主键再去查询 mysql
|
|
DreamSpaceJul 3, 2020
4
拿到代码中组装如何。
先去主表里取数据,把需要`JOIN`的`ids`去重后拿到另一张表去做`IN`查询。 |
|
whahugaoJul 3, 2020
5
才 1000w 不用着急分表吧
|
|
yuananfJul 3, 2020 via Android
6
直接上 tidb 算了
|
|
JasonLiHaiJul 3, 2020
7
1000w 松松拉,4000w 的用户表还在用
|
|
wombatJul 3, 2020
8
1000w,没必要吧。 优化一下查询 sql,建立合理的索引。 实在不行,升级一下硬件。
|
|
yongjingJul 3, 2020 via Android
9
7000w 也没感觉有什么瓶颈
|
|
10
1000w 简直小菜一碟,你太看不起 mysql 了
|
|
xuanbgJul 3, 2020
11
我们系统里面用户的热数据基本都走缓存,读写用户表是极个别现象。所以哪怕上千万也就不去管它了,稍微慢点一点都不影响什么。
|
|
sagaxuJul 3, 2020 via Android
12
才 1000 万也要分表?用户表 1 亿也毫无压力。
|
|
DelayNoMayJul 3, 2020
13
才 1000 万就要分表,我有张 10 亿的表也照样飞起
|
|
phpbestJul 3, 2020
14
库内分表和分区表,有啥区别,有大佬解释一下吗
|
|
mitu9527Jul 3, 2020
15
@DelayNoMay 10 亿的是动态表?还是静态表?文件大小不得有几十个 G 了。
|
|
16
根据我多年经验,事实上采用 MySQL 的项目 90%都用不到分库分表, 真正用得上的不会用 MySQL
|
|
17
当年被 cto 一上来就分库分表,搞得想死。最后那个项目客户数不到 1w
|
|
594duckJul 3, 2020 via iPhone
18
@DelayNoMay 10 亿多宽,是只写不查么
|
|
srx1982Jul 3, 2020
19
分个区就得了,别瞎改
|
|
caolaJul 3, 2020
20
1000W 这太少了点吧,
除非你的查询都不走索引,那确实会慢…… |
|
novaaJul 3, 2020
21
楼主问分库分表连表查询的解决方案,楼上全是 1000 万太少了,不分。。。
那我替楼主改下吧,100 亿的数据分库分表如何连表查询 |
|
gadsavesmeJul 3, 2020
23
1000w 数据正常的分区就可以了吧。没明白为什么和小表 join 会跨库。和用户表不在一个库里吗?个人觉得要么做一些冗余的字段,要么就是用户表做一下冷热垂直拆分,join 的那些字段单独拆成一张表呗不做分区。1000w 数据走索引应该不会出现性能上的瓶颈才是
|
|
cubecubeJul 3, 2020 via Android
25
@chendy 关键是公司有 oracle 授权,我说直接 oracle 快速上线吧,结果 mysql 愣是分 100 多个表。商城性质,中间处理各种跨库场景,天天加班,延期。。最后,你懂的。
|
|
dongiskingJul 3, 2020
26
@phpbest 分区的横向扩展性差,等于加了个磁盘,io 没变化
|
|
freelancherJul 3, 2020
27
1000W 用户没必要分库分表啊。优化做好来,请个专门搞这个的 DBA 就好了。给自己加活。
兼职 DBA 在这里。。。举手。 |
|
lance6716Jul 5, 2020 via Android
28
换 tidb
|
|
phpbestJul 6, 2020
29
@dongisking 那库内分表有作用吗
|