## 15.7 InnoDB Locking and Transaction Model

[15.7.1 InnoDB Locking](innodb-locking.html)
[15.7.2 InnoDB Transaction Model](innodb-transaction-model.html)
[15.7.3 Locks Set by Different SQL Statements in InnoDB](innodb-locks-set.html)
[15.7.4 Phantom Rows](innodb-next-key-locking.html)
[15.7.5 Deadlocks in InnoDB](innodb-deadlocks.html)
[15.7.6 Transaction Scheduling](innodb-transaction-scheduling.html)

[]()[]()[]()[]()

 To implement a large-scale, busy, or highly reliable database application, to port substantial code from a different database system, or to tune MySQL performance, it is important to understand `InnoDB` locking and the `InnoDB` transaction model.

 This section discusses several topics related to `InnoDB` locking and the `InnoDB` transaction model with which you should be familiar.

* [Section 15.7.1, “InnoDB Locking”](innodb-locking.html) describes lock types used by `InnoDB`.

* [Section 15.7.2, “InnoDB Transaction Model”](innodb-transaction-model.html) describes transaction isolation levels and the locking strategies used by each. It also discusses the use of [`autocommit`](server-system-variables.html#sysvar_autocommit), consistent non-locking reads, and locking reads.

* [Section 15.7.3, “Locks Set by Different SQL Statements in InnoDB”](innodb-locks-set.html) discusses specific types of locks set in `InnoDB` for various statements.

* [Section 15.7.4, “Phantom Rows”](innodb-next-key-locking.html) describes how `InnoDB` uses next-key locking to avoid phantom rows.

* [Section 15.7.5, “Deadlocks in InnoDB”](innodb-deadlocks.html) provides a deadlock example, discusses deadlock detection, and provides tips for minimizing and handling deadlocks in `InnoDB`.

