分庫分表操作
1、對於儲存層的壓力知道如何去提供及解決方案和思路。
2、對分庫分表的常用手段有全面瞭解。
3、瞭解mycat的主從以及 binlog
4、知道 Mycat以及其他相似的中介軟體
課程安排:
1.為什麼要分庫分表
超大容量資料問題
查詢效能的問題
如何做到:
垂直切分、水平切分
1.垂直分庫:把相關聯的一類表部署在一個庫上(垂直分庫解決的是表過多的問題)
2.垂直分表:解決的是單表列過多的問題(列多的表拆分成列少的表)
水平切分:大資料表拆分成小表(資料上億必須拆分)
一致性hash
範圍拆分,可以按照id
日期拆分,根據增添入表中資料的日期
拆分之後帶來的問題:
1.跨庫的join問題, select a.x,b.y from a join b on a.id=b.id
設計的時候考慮到應用層的join問題。
在服務層去做呼叫。
A服務中查詢到一個list
A服務、B服務
2.在服務層去做呼叫
A服務裡面查詢到一個list
for(list){
bservice.select(list);
}
3.全域性表
1.資料變更比較少的基於全域性應用的表
2.
2.如何去做到
3.常見的拆分策略
4.拆分後帶來的問題
5.Mysql主從配置(5.7版本的資料庫)
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
yum install mysql-server
6、瞭解 binlog 以及主從複製原理
centos7安裝mysql:
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
yum install mysql-server
systemctl start mysqld
登入到mysql當中:
執行mysql -uroot -p 回車 回車
設定root使用者的密碼:
set password = password('root')
建立一個使用者(用於做資料同步):
create user repl identified by 'repl';
grant replication slave on *.* to 'repl'@'%' identified by 'repl';
mysql的主從配置檔案:
資料庫版本5.7版本
mysql的資料檔案和二進位制檔案: /var/lib/mysql/
mysql的配置檔案: /etc/my.cnf
mysql的日誌檔案: /var/log/mysql.log
接下來以192.168.159.136為master,192.168.159.137為slave,192.168.159.135為 slave。