当前位置:   article > 正文

springboot整合sharding-jdbc实现分库分表详解_springboot sharejdbc分库分表

springboot sharejdbc分库分表

目录

一、为什么需要分库分表

1.1 分库分表的优势

二、分库分表基本概念

2.1 垂直分表

2.2 水平分表

2.3 垂直分库

2.4 水平分库

三、分库分表带来的问题

3.1 分布式事务问题

3.2 跨节点关联查询问题

3.3 跨节点分页、排序问题

3.4 主键避重问题

四、分库分表常用方案

4.1 sharding-sphere

4.2 cobar

4.3 TDDL

4.4 mycat

4.5 建议使用方案

4.5.1 sharding-jdbc和mycat对比

五、分库分表基本概念

5.1 基础概念

逻辑表

真实表

数据节点

绑定表

广播表

5.2 分片以及分片策略

5.2.1 分片键

5.2.2 常用的分片算法

5.2.3 常用分片策略

六、springboot整合sharding-jdbc

6.1 前置准备

6.1.1 创建数据库表

6.1.2 搭建springboot父子模块

6.2 sharding-jdbc分表实现

6.2.1 基础配置文件

6.2.2 实体类

6.2.3 接口层

5.2.4 业务实现

6.2.4 接口层

6.2.5 添加swagger配置类

6.2.6 启动类

6.2.7 效果测试

6.3 sharding-jdbc分库实现

6.3.1 准备另一个数据库

6.3.2 修改配置文件

6.3.3 添加测试接口

6.3.4 查询接口数据测试

七、常用分片算法的使用

7.1 标准分片算法

7.1.1 自定义数据库分片实现类

7.1.2 自定义表的分片实现类

7.1.3 完整配置文件

7.1.4 添加测试接口

7.2 标准分片算法之范围分片

7.2.1 添加数据库自定义分片策略类

7.2.2 添加表自定义分片策略类

7.2.3 将上述的类配置到配置文件中

7.2.4 添加测试接口

7.3 复合分片算法

7.3.1 标准分片问题

7.3.2 前置准备

7.3.3 添加自定义复合分片策略类

7.3.4 将自定义策略类配置到配置文件

7.3.5 接口测试

 八、写在文末


一、为什么需要分库分表

生产环境中,随着业务数据量的不断增长,尤其是核心业务数据库和表的数据量达到一定量级的时候,查询性能的瓶颈就会暴露出来,不管是mysql还是其他数据库。如果不对数据库或表进行分库分表,通常可以引入其他的存储,比如es,mongodb,数据量较小的情况下,甚至可以考虑redis等。

在行业规约中,通常来说,单表数据量达到500万时就需要考虑进行分库分表了,当然,提升查询性能的方案,分库分表不是必须的,但是如果系统架构本身不是很复杂的话,与其引入一门新的存储介质,分库分表不失为一种相对简单且容易操作的方案。

1.1 分库分表的优势

理论上

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号