一、介绍
这是一个比较个性的介绍!
这么简单的问题,为什么我会特地写一篇文章呢?
因为别人都是一路顺风,我是一路踩坑过来的。
二、为什么要做主从复制?
架构的扩展:数据量不是特别大,但并发的读写能力超过数据库单机的规模【参考阿里云MySQL标准】,将数据库的读和写机械能分离是很有必要的
数据库热备:用于进行数据库被备份【数据安全】
三、为什么要做读写分离?(部分面试官估计会这样问)
读写分离:设置了读库和写库,分离了读写操作,避免了读写同时操作同张表的场景,提高效率。
说明1:可能有人会想到,写操作的时候加了【表级锁】然后导致读操作需要等待。实际上【这只是一个小场景】我们大多数操作都是行级锁的操作,只有事务的时候会往表里面添加【表级-意向锁】
说明2:普通读写操作基本不可能触发【表级锁】,表级锁百分之九十五都是出现在DDL语句中,比如读或者写的时候不允许修改表结构,
表级锁他需要显式地去添加,大多数的应用场景是在添加事务的时候往表里面加入意向锁。
说明3:不是表级锁那么他出现什么?【行级-单记录锁(唯一键存在时),行级-间隙锁(NEXT-KEY),行级-插入意向锁】
四、配置步骤
1、声明谁是主库,谁是从库
执行: show variables like 'server_id'; ##查看数据库的服务ID
说明:一般【server_id=1】是主