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。