如果是用的mysql自带的分区功能,或者是牛逼的第三方组件,那么和平常查询一样的语句就好了。如果是每个表名不一样,那么就有有几个表写几个select,然后把这些select语句用union连起来
那这样的话有十张表就要union9次查询了吧,感觉有点麻烦的写法
并且随着水平扩展会变成还要再修改sql,感觉不是很好扩展
@洛晨随风: 那就用自带的分区功能
@会长: 其实还是想了解一下正常的生产环境中大家是怎么做的,比如oceandb这样的分布式数据库做中间件?
@洛晨随风: 分布式数据库还比简单的分区要复杂些,我也没用过。就你的问题而言,用自带的分区功能就够了(如果你用的数据库有这个功能的话)。等等看其他园友还有什么解决方案
@会长: 好的。谢谢你的解答
1、这里有个问题需要澄清,mysql自带的分区功能不算分表,楼主说的很清楚是分表;
2、mysql的分表,一般是通过中间件实现,楼主说到水平按照ID分表,严格来讲,这算是表的分片,这种分片的话,中间件会按照表的分片规则去进行数据的映射 ,不需要人工做什么处理。
嗯嗯,最近听到一个叫mycat的中间件似乎是可以的,但是也有人说他坑,具体先了解下,谢谢回答