(mysql.info) innodb-deadlock-detection
Info Catalog
(mysql.info) innodb-implicit-command-or-rollback
(mysql.info) innodb-transaction-model
(mysql.info) innodb-deadlocks
14.2.10.10 Deadlock Detection and Rollback
..........................................
`InnoDB' automatically detects a deadlock of transactions and rolls
back a transaction or transactions to break the deadlock. `InnoDB'
tries to pick small transactions to roll back, where the size of a
transaction is determined by the number of rows inserted, updated, or
deleted.
`InnoDB' is aware of table locks if `innodb_table_locks=1' (the
default) and `AUTOCOMMIT=0', and the MySQL layer above it knows about
row-level locks. Otherwise, `InnoDB' cannot detect deadlocks where a
table lock set by a MySQL `LOCK TABLES' statement or a lock set by a
storage engine other than `InnoDB' is involved. You must resolve these
situations by setting the value of the `innodb_lock_wait_timeout'
system variable.
When `InnoDB' performs a complete rollback of a transaction, all locks
set by the transaction are released. However, if just a single SQL
statement is rolled back as a result of an error, some of the locks set
by the statement may be preserved. This happens because `InnoDB' stores
row locks in a format such that it cannot know afterward which lock was
set by which statement.
Info Catalog
(mysql.info) innodb-implicit-command-or-rollback
(mysql.info) innodb-transaction-model
(mysql.info) innodb-deadlocks
automatically generated byinfo2html