尚硅谷-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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章