Offer

尚硅谷-ShardingSphere

分库分表重点还是在于数据一致性,主从复制和库表管理底层原理,本质上根据配置文件入不同库,入不同表还是很简单的。

学习链接:https://www.bilibili.com/video/BV1LK411s7RX?p=23&vd_source=510ec700814c4e5dc4c4fda8f06c10e8

csdn csdn csdn csdn csdn


🔥1. 基本概念

1.1. 基本名词

1.1.1 ShardingSphere

​ 分布式数据库中间件

1.1.2 产生场景

​ 由于数据量不断增大,原始可以使用硬件优化,现在需要增加分库分表

​ 分库分表分为垂直切分和水平切分

1. 垂直切分
 	1. 垂直分表:同一张表拆分字段存入不同表
 	2. 垂直分库: 不同业务表存入不同业务的数据库

2. 水平切分
 	1. 水平分表:可以根据id拆分表数据导不同表中
 	2. 水平分库:表数据水平存到不同数据库中,避免请求打到同一个库中。不同库中库表结构都是一样的
1.1.3 场景变迁
1. 数据库设计的时候考虑垂直分库、垂直分表
1. 数据量增加,优先考虑缓存、读写分离、索引、数据库硬件、数据库选择等方式解决,实在解决不了了再考虑水平分库分表

​ 但存储几个问题:不同服务器数据库之间如何管理

1.2 基本使用

1.2.1 Sharding-JDBC

​ 用于数据分片和读写分离,操作不同数据库的表,并不是分库分表

1.2.1.1 水平分表
  1. 导入shardingshpere、druid依赖包

  2. 把原始spring.datasource删除,使用sharding-datasource的properties配置文件

  3. 配置bean的覆盖策略

    spring.main.allow-bean-definition-overriding=true
    
  4. 后续就能实现原始代码也能正常CRUD,course_1, course_2的插入和查询采用分片策略进行查询与插入

1.2.1.2 垂直分库、公共表(略)
1.2.1.3 读写分离(略)

​ 就是主写从读,从数据库通过读取binlog实时把数据拉取过来

1.2.2 Sharding-Proxy

​ 数据库代理端

1.3 个人小结

image-20220827161803371

posted @ 2022-08-27 16:23  Empirefree  阅读(107)  评论(0编辑  收藏  举报