01.ShardingSphere笔记
#1.分庫分表的概念
#1.1.垂直分表
概念:就是把一個表里的字段,分成多個表進行存儲,比如一個學生表,有姓名,性別,年齡,年級,班級等信息。那么進行垂直分表的概念就是把學生表中的姓名,性別,年齡分成了一個表,年級,班級等信息又分成了另外一個表。
思考這樣做的好處:
1.減少了IO流操作。因為有時候,我們就只需要學生的姓名,性別,年齡即可。其他的班級信息是不需要的。
2.就是當我們如果在做修改操作的時候,修改會有鎖表的操作。那么分表的好處就是可以不影響另外一張表查詢。
如果一個表中某些列常用,而另外一些列不常用,則可以采用垂直分割,另外垂直分割可以使得數據行變小,一個數據頁就能存放更多的數據,在查詢時就會減少I/O次數。
那既然有好處,那肯定就有弊端:
1.其缺點是需要管理冗余列,查詢所有數據需要join操作
#1.2.垂直分庫
比如一個學生選課系統,里面有學生表信息,選課信息。
那么我們為了減輕數據庫的壓力,可以做到專庫專用,就是某些業務,我們可以放在單獨的數據庫里。
像這個學生選課系統,那么我們就可以把學生表放在一個庫,選課表放在另外一個庫。
#2.1.水平分庫
概念,就是把所有表都復制一份出來,然后部署到不同的服務器上,這樣就能減輕數據庫的壓力。
#2.2.水平分表
概念:就是在同一個數據庫中,把表復制出多份結構相同的表。比如學生表,就分為學生表1,學生表2....
#3.總結
垂直分庫分表:是對(庫里的表)或者是(表里的字段)進行垂直切分。
水平分庫分表:是對(整個庫)或者是(整個表信息)進行水平復制。簡單理解就是水平分庫分表就是切分成多個同樣的庫和多個同樣的表。
#4.分庫分表應用和問題
#4.1.應用
1.在數據庫設計時候就要考慮垂直分庫和垂直分表的場景。
2.隨著數據庫數據量增加,不要馬上考慮做水平切分,首先考慮緩存處理,讀寫分離,使用索引等等方式,如果這些方式不能根本解決問題了,再考慮做水平分庫和水平分表。
#4.2.分庫分表帶來的問題
1.跨節點連接查詢問題(分頁、排序)。
2.多數據源管理問題。
因為分庫分表后,就存在不同的表存放在不同的庫,一些業務上是需要展示多個表數據的。這個時候就出現了跨節點連接查詢的問題了。
#2.Sharding-JDBC
#2.1.簡介
1.是一個輕量級的java框架,是增強版的JDBC驅動。官網:https://shardingsphere.apache.org/index_zh.html
#2.2.目的
主要目的:簡化對分庫分表之后數據相關操作。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的01.ShardingSphere笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos7中安装JDK8-281版本
- 下一篇: RocketMQ历史版本下载