【SQL基礎】多表查詢:子查詢、連線查詢(JOIN)、組合查詢(UNION聯合)
阿新 • • 發佈:2022-04-20
問題:當我們在使用資料庫時,在一個程式中要是面臨很多的使用者同時進行訪問,那樣大量的訪問資料庫,這就造成了大量的讀寫壓力都有一臺資料來承擔,壓力大,造成資料庫伺服器的磁碟損壞則資料會丟失,單點故障。
解決問題:使用多臺資料來分擔壓力,同時資料庫有多個可以實現資料備份,以及讀寫分離。
Mysql主從複製
配置-前置條件
提前準備好兩臺伺服器,分別安裝mysql 並啟動伺服器。
配置-主庫Master
[mysqld]
log-bin=mysql-bin #[必須]啟動二進位制日誌
server-id=100 #[必須]伺服器的唯一ID其中的server-id不是固定的,可以自己給個id
在修改完配置檔案後,我們需要去重新整理服務,是修改完後,可以正常啟動
systemctl restart mysqld
然後登入Mysql資料庫,施行sql
GRANT REPLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'Root@123456'
第四步:
show master status
從庫的配置
change master to master_host='192.168.138.100',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000001',master_log_pos=439;
start slave;
注意:使用mysql-bin.000001是從主從配置裡面的第四步進行查詢的。master_log_pos=439也是查詢到的。
在進行時出現上面的錯誤,按照提示的去進行關閉slave;
讀寫分離
Sharding-JDBC來幫助我們完成讀寫分離
相關座標:
<!-- Sharding-JDBC來幫助我們完成讀寫分離-->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>sharding-jdbc-spring-boot-starter</artifactId>
<version>4.0.0-RC1</version>
</dependency>
Sharding-JDBC入門案例
在配置檔案yml中進行配置:
server
要是沒有進行配置
main:
allow-bean-definition-overriding: true會進行報錯,這個報錯是,配置的資料資料無法識別讀取資料庫