Replication Formats • RELEASE_LOCK() • SLEEP() • VERSION() • INSERT ... SELECT  requires a greater number of row-level locks than with row-based replication. • UPDATE  statements that require a table scan (because no index is used in the  WHERE  clause) must lock a greater number of rows than with row-based replication. •For  InnoDB : An  INSERT  statement that uses  AUTO_INCREMENT  blocks other nonconflicting  INSERT statements. •For complex statements, the statement must be evaluated and executed on the replica before the rows are updated or inserted. With row-based replication, the replica only has to modify the affected rows, not execute the full statement. •If there is an error in evaluation on the replica, particularly when executing complex statements, statement-based replication may slowly increase the margin of error across the affected rows over time. See Section 17.5.1.29, “Replica Errors During Replication” . •Stored functions execute with the same  NOW()  value as the calling statement. However, this is not true of stored procedures. •Deterministic loadable functions must be applied on the replicas. •Table definitions must be (nearly) identical on source and replica. See Section 17.5.1.9, “Replication with Differing Table Definitions on Source and Replica” , for more information. •As of MySQL 8.0.22, DML operations that read data from MySQL grant tables (through a join list or subquery) but do not modify them are performed as non-locking reads on the MySQL grant tables and are therefore not safe for statement-based replication. For more information, see Grant Table Concurrency. •All changes can be replicated. This is the safest form of replication. 3587 Statements that update the information in the  mysql  system schema, such as GRANT ,  REVOKE  and the manipulation of triggers, stored routines (including stored procedures), and views, are all replicated to replicas using statement- based replication. Note Advantages of row-based replication A similar warning is also issued to the client in such cases. The client can display it using  SHOW WARNINGS . Statements that cannot be replicated correctly using statement-based replication are logged with a warning like the one shown here: For more information, see Section 17.5.1.14, “Replication and System Functions” . However, all other functions are replicated correctly using statement-based replication, including NOW()  and so forth. [Warning] Statement is not safe to log in statement format.