首页 新闻 赞助 找找看

mysql如何在水平按照ID分表以后查找一条Name叫做张三的信息啊

1
[已解决问题] 解决于 2020-01-16 16:37

今天面试遇见一个问题,如题,想了一下不知道怎么去根据不同字段进行查找,希望有大佬解答

洛晨随风的主页 洛晨随风 | 初学一级 | 园豆:71
提问于:2019-08-31 21:20
< >
分享
最佳答案
2

如果是用的mysql自带的分区功能,或者是牛逼的第三方组件,那么和平常查询一样的语句就好了。如果是每个表名不一样,那么就有有几个表写几个select,然后把这些select语句用union连起来

奖励园豆:5
会长 | 专家六级 |园豆:12401 | 2019-09-02 08:21

那这样的话有十张表就要union9次查询了吧,感觉有点麻烦的写法

洛晨随风 | 园豆:71 (初学一级) | 2019-09-02 08:24

并且随着水平扩展会变成还要再修改sql,感觉不是很好扩展

洛晨随风 | 园豆:71 (初学一级) | 2019-09-02 08:24

@洛晨随风: 那就用自带的分区功能

会长 | 园豆:12401 (专家六级) | 2019-09-02 08:41

@会长: 其实还是想了解一下正常的生产环境中大家是怎么做的,比如oceandb这样的分布式数据库做中间件?

洛晨随风 | 园豆:71 (初学一级) | 2019-09-02 08:44

@洛晨随风: 分布式数据库还比简单的分区要复杂些,我也没用过。就你的问题而言,用自带的分区功能就够了(如果你用的数据库有这个功能的话)。等等看其他园友还有什么解决方案

会长 | 园豆:12401 (专家六级) | 2019-09-02 08:58

@会长: 好的。谢谢你的解答

洛晨随风 | 园豆:71 (初学一级) | 2019-09-02 09:04
其他回答(1)
0

1、这里有个问题需要澄清,mysql自带的分区功能不算分表,楼主说的很清楚是分表;
2、mysql的分表,一般是通过中间件实现,楼主说到水平按照ID分表,严格来讲,这算是表的分片,这种分片的话,中间件会按照表的分片规则去进行数据的映射 ,不需要人工做什么处理。

lhdz_bj | 园豆:227 (菜鸟二级) | 2019-10-02 16:16

嗯嗯,最近听到一个叫mycat的中间件似乎是可以的,但是也有人说他坑,具体先了解下,谢谢回答

支持(0) 反对(0) 洛晨随风 | 园豆:71 (初学一级) | 2019-10-07 09:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册