Statement based vs Row based

Events are recorded within the binary log in statements-based format or row-based format. Statement-based logging, the default, logs statements that made any changes, whereas row-based logging logs changes in individual table rows. A third type of logging, mixed-format logging, changes the logging format in real time according to the type of event.
To change the format for binary logging, SET the system variable binlog_format. Restart the server if the variable is set globally.
SET binlog_format = 'ROW';
SET @@binlog_format = 'STATEMENT';
SET SESSION binlog_format = 'MIXED';
SET GLOBAL binlog_format = 'ROW';
SET @@session.binlog_format = 'STATEMENT';
SET @@global.binlog_format = 'MIXED';

Statement-based logging requires much less storage space, so statement-based replication (SBR) can be completed more quickly.However, SBR has its limitations when compared to row-based replication (RBR). SBR: The following statements are unsafe for SBR. They generate a warning if statement-based logging is used. If the MIXED binary logging format is used, these unsafe statements are logged using row-based format, while the other statements are logged using statement-based format. However, the following non-deterministic functions are safe: CONNECTION_ID(), CURDATE(), CURRENT_DATE(), CURRENT_TIME(), CURRENT_TIMESTAMP(), CURTIME(), LAST_INSERT_ID(), LOCALTIME(), LOCALTIMESTAMP(), NOW(), UNIX_TIMESTAMP(), UTC_DATE(), UTC_TIME(), and UTC_TIMESTAMP().