ShardingSphere

一、基本概念

1、什么是ShardingSphere

1、一套开源的分布式数据库中间件解决方案

2、有三个产品:Sharding-JDBC和Sharding-Proxy、Sharding-Sidecar

3、定位为关系型数据库中间件,合理在分布式环境下使用关系型数据库操作

2、分库分表

1什么是分库分表

1、数据库的数据量是不可控制的,随着时间和业务发展,造成表里面数据越来越多,如果再去对数据库表crud操作,造成性能问题。

2、方案1:从硬件上

3、方案2:分库分表

*为了解决由于数量过大而造成数据库性能降低问题。

2分库分表的方式

分库分表有两种方式:垂直切分和水平切分

垂直切分:垂直分表和垂直分库

水平切分:水平分表和水平分库

1、垂直分表

(1)操作数据库中某张表,把这张表中一部分字段数据存到一张新表里面,再把这张表另一部分字段数据存到另外的一张表里面。

2、垂直分库

(1)把单一数据库按照业务进行划分、专库专表

3、水平分库

(1)创建表结构相同的几个库,将大量数据根据一定规则均分存储到每个库中。

4、水平分表

一个数据库中创建多个结构相同的表,将大量数据根据一定规则均分存储到每个表中。

3分库分表应用和问题

1、应用

(1)在数据库设计时候考虑垂直分库和垂直分表

(2)随着数据库数据量增加,不要马上考虑水平切分,首先考虑缓存处理,读写分离,使用索引等等方式,如果这些方式不能根本解决问题了,再考虑做水平分库和水平分表

2、分库分表问题

(1)跨节点连接查询问题(分页、排序)

(2)多数据源管理问题

二、Sharding-JDBC

1Sharding-JDBC简介

1、是轻量级java框架,是增强版的jdbc驱动

2、Sharding-JDBC:不是做分库分表,主要做两个功能:数据分片和读写分离,简化对分库分表之后数据相关操作

2Sharding-JDBC实现(水平分表)

1、搭建环境

(1)SpringBoot+MybatisPlus+Sharding-JDBC+Druid连接池

(2)创建SpringBoot工程

(3)引入需要的依赖

2、按照水平分表的方式创建数据库、创建数据库表

(1)创建数据库:course_db

(2)在数据库创建两张表course_1和course_2 

(3)约定规则:如果添加课程id是偶数把数据添加到course_1,如果是奇数添加到course_2

 3、编写代码实现对分库分表数据的操作

(1)创建实体类,mapper

4、配置Sharding-JDBC分片策略

(1)在项目application.propeties配置文件进行配置·

5、编写测试代码

三、Sharding-Proxy

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值