简述MySQL主从复制原理,异步,半同步,增强半同步复制的区别/及mysql存储引擎

主从复制原理:
(1)从库生成两个线程,一个i/o线程,一个SQL线程,i/o线程去请求主库的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中。
(2)主库会生成一个log dump 线程,用来给从库i/o线程传binlig;
(3)SQL线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致;


异步: 
主库写入一个事务commit提交并执行完之后,将日志记录到binlog,把结果反馈给客户端,最后将日志传输到从库。


半同步:
主库写入一个事务commit提交并执行完之后,并不直接将请求反馈给前端应用用户,而是等待从库也接受到binlog日志并成功写入中继日志后,主库才返回commit操作成功给客户端。


增强半同步:
这个新特性保证了主库和从库之间的数据完整性,一致性,并不会带来任何副作用以及性能影响。


mysql存储引擎:
	       (1)MyISAM用一个变量保存了整个表的行数,InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描。MylSAM执行上述语句时只需要读出该变量即可,速度很快。	
		   (2)MyISAM支持全文索引,Innodb不支持全文索引,查询效率上MyISAM要高。
		   (3)innodb支持事务,MyISAM不支持事务,
		   (4)如果表中绝大多数都只是读查询,可以考虑MyISAM,如果既有读写也挺频繁,请使用InnoDB。系统奔溃后,MyISAM恢复起来更困难。



你可能感兴趣的:(简述MySQL主从复制原理,异步,半同步,增强半同步复制的区别/及mysql存储引擎)