数据库管理员之mysql复制有何优势?

    /    2018-05-29

Mysql数据库管理员学习过程中,mysql复制有什么优势呢?基于语句复制?基于行复制?

• 基于语句复制的优势:

属于比较成熟的技术,得到广泛使用

当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表的行复制有可能会导致复制异常。

(6)

分享至