MysQL的binlog有有几种录入格式?分别有什么区别?
logbin格式:
binlog.format=STATEMENT(默认)∶数据操作的时间,同步时不一致,每一条会修改数据的sql语句会记录到binlog中。优点是并不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能。缺点是在某些情况下会导致master-slave中的数据不一致( 如sleep()函数,last_insert_id(),以及user-defined functions(udf)等会出现问题)
binlcg.format=ROW:批量数据操作时,效率低、不记录每条sql语们的上下文信息,仅需记录哪条数据被修改了,修改成什么样了.而且不会出现某些特定情况下的存储过程、或function、或trigger的调用和触发无法被正确复制的问题。缺点是会产生大量的日志,尤其是alter table的时候会让日志暴涨.
binlog _format=MXED:是以上两种level的混合使用,有函数用ROW,没函数用STATEMENT,但是无法识别系统变量