天津做网站选津坤科技,网站网站代理怎么做,试用网站 建站,临海网站建设1.statement
statement 记录的是sql语句。比如一条sql#xff0c;update table_user set age 20 where id between 1 and 100。这条sql会更新100条数据#xff0c;但是statement 模式下只会记录这条sql语句。
优点#xff1a;不需要记录数据的变化#xff0c;减少了bin …1.statement
statement 记录的是sql语句。比如一条sqlupdate table_user set age 20 where id between 1 and 100。这条sql会更新100条数据但是statement 模式下只会记录这条sql语句。
优点不需要记录数据的变化减少了bin log文件大小减少IO负担。
缺点会导致主从不一致的情况。mysql主从基于binlog如果master节点的sql包含now、uuid等动态函数会导致主从不一致。例如update table_user set user_iduuid() where id 1, uuid() 在从节点重放时又会生成新的uuid从而导致主从数据不一致。
2.row
row基于行的复制会清晰记录每条数据被修改的详细情况保证了数据的一致性。比如一条sqlupdate table_user set age 20 where id between 1 and 100。这条sql会更新100条数据那row模式就会在binlog记录100条update语句。
优点会清晰记录每条数据被修改的详细情况保证了数据的一致性
缺点row格式的缺点在于比较占用空间比如更新十万行数据那么row格式将会把10万数据记录下来。
3.mixed
对于DDL数据库定义语言CREATE、ALTER等只对SQL语句进行记录对DML INSERT、DELETE、UPDATE、SELECT语句操作则会进行判断如果判断会造成主从不一致就会采用row格式记录反之则用statement格式记录
优点既节省空间又提高数据库性能保证数据同步时的一致性。
缺点无法对误操作数据进行单独恢复。