zoukankan      html  css  js  c++  java
  • 分库分表——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不支持关联查询、分布式事务复杂度高、一致性差。不过这些都是关系型数据库在分布式场景下的通病。

  • 相关阅读:
    你所不知道的setTimeout
    SecureCRT8.1下载+注册机+破解教程
    jQuery学习
    GIt学习
    多进程
    Linux下的压缩(zip)解压(unzip)缩命令
    三次握手四次挥手
    django常见问题
    form和modelform
    文件上传
  • 原文地址:https://www.cnblogs.com/jing-yi/p/14612489.html
Copyright © 2011-2022 走看看