In this blog post, we’ll look at what
innodb_autoinc_lock_mode is and how it works.
I was recently discussing innodb_autoinc_lock_mode with
some colleagues to address issues at a company I was working
with.
This variable defines the lock mode to use for generating
auto-increment values. The permissible values are 0, 1 or 2 (for
“traditional”, “consecutive” or “interleaved” lock mode,
respectively). In most cases, this variable is set to the default
of 1.
We recommend setting it to 2 when the BINLOG_FORMAT=ROW. With
interleaved, INSERT statements don’t use the table-level AUTO-INC
lock and multiple statements can execute at the same time.
Setting it to 0 or 1 can cause a huge hit in concurrency for
certain workloads.
Interleaved (or 2) is the fastest and most scalable lock mode,
but it is not safe if using STATEMENT-based replication or
recovery scenarios when SQL …
[Read more]