During the execution of transactional statements, the server will perform additional processing, and multiple transactions are executed in parallel while the server is executing, in order to bring their records together, the concept of transaction caching needs to be introduced. Refreshes to the binary log together when the transaction completes being committed. For processing of non-transactional statements. follow these 3 rules:
1 If the non-transactional statement is marked as transactional, the transaction buffer is written.
2 If it is not marked as a transactional statement and is not in the transaction cache, write the binary log directly.
3 If it is not marked as transactional, but is in the transaction cache, write transaction buffering.
Note If there is a non-transactional statement in a transaction, then rule 2 will be used to write the affected non-transaction table statement directly to the binary log.