最近一个前同事问我分库分表怎么做的,我才想起来这个公司好像没关注过这方面。看了运维,其实是显式的有 3 个库,基于 binlog 订阅,分别给我们业务方、BI 统计、以及模型离线计算。我们为主库。
但是只有一个库吗?然后又看了中间件,发现使用的除了 druid,还有 Cobar。咨询同事,同事说之前用的是 TDDL,不需要关心分库分表,答曰:“需要你 hold 全栈的,数据量一定不需要分库分表。需要分库分表的量级,一定有团队专门负责这部分。” 突然觉得好对。。。
但是了解一些这几个框架的设计思想还是很有必要的。先挖个坑
关于分库分表
相关帖子
-
jin123456bat • • 1
1、把订单表和用户表分开存储,不管从读还是写上都可以减少 DB 的压力,这是分库,主要原则是业务逻辑分开的表进行分库,最好不要把 2 个关联强度比较大的表分开存储
2、一般请求订单数据都是通过订单号来解决,假设订单正好是数字,订单号为 20170822123 是单数,存储在 order_A 表中,20170822124 是双数,存储在 order_B 表中,同理可以分多个表,每个数据表的数据量会比以前小很多,比较麻烦的是查询列表的时候,需要从每个表中都查出一些数据,然后在做排序,然后在分页等等,比较麻烦,因为从多个表中拿出来的数据不一定是排序好了的,这个主要看需求和设计,实现方式尽量和设计保持一致,这是分表,上面 2 种是从逻辑上进行的分离,需要自己改代码,也可以使用第三方中间件比如 mycat 之类的实现,
1 回复 - 其他回帖
-
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于