分类: Mysql/postgreSQL
2018-05-28 14:07:18
? 基于语句复制的优势:
属于比较成熟的技术,得到广泛使用
当SQL语句会修改很多数据时,使用语句复制会比较节省空间
由于二进制文件中包含了所有的修改语句,所以可以用来做审计功能
? 基于语句复制的劣势:
某些特定的修改语句在基于语句复制的环境中复制会有问题,比如:
语句中包含自定义函数或者不确定性的存储过程
update/delete语句中包含Limit语句但不包含order by语句属于不确定性语句
一些函数比如rand(), sysdate(),version()等由于不确定性也会导致复制异常
每个导致复制异常的语句都会产生一个告警信息
[Warning] Statement is not safe to log in statement format.
? 基于行复制的优势:
所有的数据库修改都可以被复制,是一种安全的方式
由于是行复制,所以某些语句在主库和从库上执行需要较少的lock
? 基于行复制的劣势:
当DML语句涉及到多行的修改时,则由于行复制会把每行的修改信息都记录下来,所以bin log会很大,有可能会导致复制的延迟相比较语句复制要大,不能直接查看在备库中执行的SQL语句
建议仅使用InnoDB表做行复制,对MyISAM表的行复制有可能会导致复制异常。
互联网企业大多用的数据库是MySQL的,想要众多的IT工作者中脱颖而出,就需要拥有高深的技 术,学习增值是必不可少的。学习之路,是贵在坚持的。老男孩教育MySQL DBA课程,几经更新课程,杜绝纸上谈兵,全企业真实案例结合理论授课,想深