首先看一下主从从架构的图:
一、单一master和多slave
在实际应用场景中,MySQL复制90%以上都是一个Master复制到一个或者多个
Slave的架构模式,主要用于读压力比较大的应用的数据库端廉价扩展解决方案。因
为只要Master和Slave的压力不是太大(尤其是Slave端压力)的话,异步复制的延
时一般都很少很少。尤其是自从Slave端的复制方式改成两个线程处理之后,更是减
小了Slave端的延时问题。而带来的效益是,对于数据实时性要求不是特别高的应用
,只需要通过廉价的pcserver来扩展Slave的数量,将读压力分散到多台Slave的机
器上面,即可通过分散单台数据库服务器的读压力来解决数据库端的读性能瓶颈,毕
竟在大多数数据库应用系统中的读压力还是要比写压力大很多。这在很大程度上解决
了目前很多中小型网站的数据库压力瓶颈问题,甚至有些大型网站也在使用类似方案
解决数据库瓶颈。
(1) 不同的slave扮演不同的作用(例如使用不同的索引,或者不同的存储引擎);
(2) 用一个slave作为备用master,只进行复制;#主服务器挂了之后,可在从服务器执行
1> 在备机上执行STOP SLAVE 和RESET MASTER
2> 查看show slave status \G;
3> 然后修改应用的连接地址。
(3) 用一个远程的slave,用于灾难恢复;
二、互为主从Master-Master(Master-Master in Active-Active Mode)
Master-Master复制的两台服务器,既是master,又是另一台服务器的slave。这
样,任何一方所做的变更,都会通过复制应用到另外一方的数据库中。
互为主从复制过程
什么是自增长ID?
对于某些唯一性的字段,可以通过设置自增长ID来实现,自增长ID的数据,代表这个表中存在一条唯一的记录;而自增长id是肯定不会重复的;
创建表,设置ID为自增长
create table userInfo (id int PRIMARY KEY AUTO_INCREMENT,name varchar(50) NOT NULL);
两边插入数据看数据