• 分库分表——Sharding-Sphere


    目前分库分表除了应用层基于业务逻辑的方式,在技术层面主要两种方式:一种是中间件代理,例如mycat和sharding-proxy,对于应用是比较透明的,支持的语言也多;第二种是侵入式,也就是数据库直连,例如sharding-jdbc。sharding-proxy和sharding-jdbc已经整合到sharding-Sphere里,官方文档:http://shardingsphere.apache.org/index_zh.html

    Sharding-Sphere的不足之处:

    (1)shrdingkey粘连,例如sharding-jdbc里面需要指出分库键和分表键,如果业务很复杂,意味着要建立很多shrdingkey;增删改查都必须带上这个shrdingkey才能路由到具体的数据表。

    (2)要根据业务设计具体的数据均衡算法,如果要实现数据冷热均衡、高可用复杂,那算法的复杂度就会更高。一般分表分库数据,热点数据就需要设计非常复杂的算法,提前规划好几张库几张表;例如购物记录表,设计2个库,每个库水平切4张表,再为这些表设计一套均衡的数据分流,但是人员表你最多一个库两张表,再为这种业务维度设计一套数据均衡。最后,你要为这些来个主从、读写分离保证高可用。

    (3)扩容非常困难,扩容要考虑数据均衡算法。

    (4)sql不支持关联查询、分布式事务复杂度高、一致性差。不过这些都是关系型数据库在分布式场景下的通病。

  • 相关阅读:
    找到数组中消失的所有数字-算法刷题总结
    爬楼梯-算法练习笔记
    最长公共前缀-刷题总结
    每日温度-算法详细分析
    买卖股票的最佳时机-算法详细分析
    回文数-算法详细分析
    合并两个有序链表-算法详细法分析
    最短无序连续子数组 | 算法详细分析
    整数反转-算法详细分析
    python设计模式之责任链模式
  • 原文地址:https://www.cnblogs.com/jing-yi/p/14612489.html
Copyright © 2020-2023  润新知