Replication Formats For statements such as  CREATE TABLE ... SELECT , a  CREATE  statement is generated from the table definition and replicated using statement-based format, while the row insertions are replicated using row-based format. •Fewer row locks are required on the source, which thus achieves higher concurrency, for the following types of statements: • INSERT ... SELECT • INSERT  statements with  AUTO_INCREMENT • UPDATE  or  DELETE  statements with  WHERE  clauses that do not use keys or do not change most of the examined rows. •Fewer row locks are required on the replica for any  INSERT ,  UPDATE , or  DELETE  statement. •RBR can generate more data that must be logged. To replicate a DML statement (such as an  UPDATE  or DELETE  statement), statement-based replication writes only the statement to the binary log. By contrast, row-based replication writes each changed row to the binary log. If the statement changes many rows, row-based replication may write significantly more data to the binary log; this is true even for statements that are rolled back. This also means that making and restoring a backup can require more time. In addition, the binary log is locked for a longer time to write the data, which may cause concurrency problems. Use  binlog_row_image=minimal  to reduce the disadvantage considerably. •Deterministic loadable functions that generate large  BLOB  values take longer to replicate with row-based replication than with statement-based replication. This is because the  BLOB  column value is logged, rather than the statement generating the data. Disadvantages of row-based replication •You cannot see on the replica what statements were received from the source and executed. However, you can see what data was changed using  mysqlbinlog  with the options  --base64- output=DECODE-ROWS  and  --verbose . •For tables using the  MyISAM  storage engine, a stronger lock is required on the replica for  INSERT statements when applying them as row-based events to the binary log than when applying them as statements. This means that concurrent inserts on  MyISAM  tables are not supported when using row- based replication. Alternatively, use the  binlog_rows_query_log_events  variable, which if enabled adds a Rows_query  event with the statement to  mysqlbinlog  output when the  -vv  option is used. MySQL uses statement-based logging (SBL), row-based logging (RBL) or mixed-format logging. The type of binary log used impacts the size and efficiency of logging. Therefore the choice between row-based replication (RBR) or statement-based replication (SBR) depends on your application and environment. This section describes known issues when using a row-based format log, and describes some best practices using it in replication. For additional information, see Section 17.2.1, “Replication Formats” , and Section 17.2.1.1, “Advantages and Disadvantages of Statement-Based and Row-Based Replication” . For information about issues specific to NDB Cluster Replication (which depends on row-based replication), see Section 23.6.3, “Known Issues in NDB Cluster Replication” . 17.2.1.2 Usage of Row-Based Logging and Replication 3588