sharding-sphere 理解

110 阅读1分钟

1、sharding-sphere 由3部分组成:

Sharding-JDBC(轻量级java框架,兼容常见的JDBC和ORM框架)是最常用的、Sharding-Proxy(透明化的数据库代理端,算是个客户端,对DBA更加友好)、Sharding-Sidecar(云原生数据库代理)。

2、sharding-sphere 实际用时的理解

一、分片

  • 1、在现代流量为王的时代,用户数据量急剧上升,一个业务的数据可达上千万上亿。
  • 2、MySql是关系型数据库,快速查找是使用索引查询。索引的存储是以页方式存储B+树。InnoDB 中B+树高度一般为3层时,就能满足千万级的数据存储。在查找数据时一次页的查找代表一次IO,所以通过主键索引查询通常只需要1-3次 IO 操作即可查找到数据。数据量一旦太大,就会使得IO次数多,sql性能下降,这时就需要把数据进行拆分。
  • 3、分片--拆分方式:垂直拆分(是根据业务进行拆分,例如细分订单信息)和水平拆分(表数据拆分)。
  • 4、Sharding-JDBC 水平拆分(分库分表),包含分片键+分片算法(可看shardingsphere.apache.org/document/4.…)
  •   1.数据源配置(分库配置,配置多个数据源)
    
  •   2.配置分库策略:DatabaseShardingStrategy 用于配置目标数据库中的数据。例如:
    

image.png

  •   3.配置分表策略:TableShardingStrategy用于配置数据库中存在的目标表中的数据。所以分表策略依赖于分库策略的结果。例如:
    

image.png

  •    4.配置主键Id:不建议使用UUID。可以使用雪花算法或者步长ID