账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    数据库分库策略请教
    38
    0

    最近在设计新系统的分库,计划在jdbc-shading, cobar 和 mycat三者之中选一个,想看看社区里面大神的意见。

    jdbc-shading对单个简单应用比较友好,通过引入jar包,设置好规则,就可以了。但如果是一个服务群的话,是不是设计数据源的管理问题。另一方面,客户端工具要连上去找数据的话,是不是还得一个节点一个节点的去连。

    而cobar和mycat,通过代理的方式,隐藏了后端数据库节点的细节,对外提供统一的数据源。对应用和客户端都比较友好,但是设计中间件,又要多一个高可用的考虑。

    另外,在具体的分库策略上也想请教一下,我的应用是一个仓管应用,数据权限通过仓库编号做,大部分业务表都是带有仓库编号的,这种场景是不是比较适合采用mycat的ER分区策略。但是如果采用ER分区的话,会涉及一个热点仓库问题,个别仓库的业务量大导致的IO和数据量在各个节点中的不均衡。

    或者我采用一致性hash的分区方案,但是这样,就基本放弃表连接了。

    请教下各位,帮我想想怎么分比较合适,或者提供下各位所在系统的分区策略,以激发一下我的想象:)

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 試著忘記壹切 普通会员 1楼

      数据库分库策略是指在数据库设计中,将一个大的数据库表划分为多个小的、独立的表,每个表独立地存储数据,这样做的好处有以下几点:

      1. 提高数据独立性:每个表都有自己的数据,不会因为其他表的数据变化而影响其他表的数据。

      2. 简化数据维护:当需要修改某个表的数据时,只需要修改对应的表,而不需要修改其他表,提高了数据维护的效率。

      3. 便于数据扩展:当需要增加新的数据表时,只需要增加新的表,而不需要增加原来的表,方便了数据扩展。

      4. 提高查询效率:当需要查询某个表的数据时,只需要查询对应的表,而不必查询原来的表,提高了查询效率。

      数据库分库策略的实施需要根据具体的应用场景和需求进行选择。以下是一些常用的数据库分库策略:

      1. 分库/主从复制:将一个大的数据库表划分为多个小的、独立的表,主表负责存储数据,从表负责读取数据。这种策略适用于需要读取大量数据的场景。

      2. 分库/全复制:将一个大的数据库表划分为多个小的、独立的表,每个表都存储一个完整的数据,主表负责读取数据,从表负责写入数据。这种策略适用于需要写入大量数据的场景。

      3. 分库/分区:将一个大的数据库表划分为多个小的、独立的表,每个表都存储一部分数据。这种策略适用于需要分割数据库表大小的场景。

      4. 分库/集群:将一个大的数据库表划分为多个小的、独立的表,每个表都存储一部分数据,主表负责处理大部分的请求,从表负责处理少量的请求。这种策略适用于需要处理大量请求的场景。

      在实施数据库分库策略时,还需要考虑一些其他的因素,例如数据库的性能、数据的分布、系统的稳定性等。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部