分库分表带来的一些问题

  • 资料
    分库分表的概念及应用场景详解
    分库分表带来的一些问题
    sharding-jdbc水平垂直分库分表环境搭建
    sharding-jdbc水平分库分表实战
    sharding-jdbc垂直分库分表实战

  • 分布式事务问题
    数据库的事务只是在本地是有效的,能保证结点本身的的操作是一个事务.当多个数据库时,数据库之间是不可见的,所以存在分库时数据不一致性问题.

  • 跨结点关联查询问题
    当垂直分库的时候,比如订单和支付是不同模块,那么这个时候想查看订单详情,那么需要关联查询,那么再也不能像单库那样,直接使用join就能达到预期效果了

  • 跨结点排序,分页,max,min,count等问题
    当水平分库的时候,每个数据库结点都是保存一部分数据,那么排序,分页,max,min,count是对整体数据的操作,也不能像单库那样,直接使用order by, limit, max,min,count(*)就能解决了

  • 主键重复问题
    当水平分表分库的时候,主键的生成策略就没用了,水平分库分表就不能依赖表本身主键生成策略了,否则很可能发生重复

  • 公共表问题
    一些功用表,比如一些常量表,是多个数据库结点都要使用到的,但是是不需要分库分表的

  • 总结
    虽然分库分表可以给我们解决数据库性能问题,但是也会给我们带来上面基本的五个问题,可能在开发当中需要解决,这些解决方案在一些中间价已经帮我们解决了,我们只需要使用这些中间价的方案即可.

猜你喜欢

转载自blog.csdn.net/weixin_38312719/article/details/109134841
今日推荐