InnoDB
provides MySQL with a transaction-safe
(ACID
compliant) storage engine that has
commit, rollback, and crash recovery capabilities.
InnoDB
does locking on the row level and also
provides an Oracle-style consistent non-locking read in
SELECT
statements. These features increase
multi-user concurrency and performance. There is no need for lock
escalation in InnoDB
because row-level locks
fit in very little space. InnoDB
also supports
FOREIGN KEY
constraints. You can freely mix
InnoDB
tables with tables from other MySQL
storage engines, even within the same statement.
InnoDB
has been designed for maximum
performance when processing large data volumes. Its CPU efficiency
is probably not matched by any other disk-based relational
database engine.
Fully integrated with MySQL Server, the InnoDB
storage engine maintains its own buffer pool for caching data and
indexes in main memory. InnoDB
stores its
tables and indexes in a tablespace, which may consist of several
files (or raw disk partitions). This is different from, for
example, MyISAM
tables where each table is
stored using separate files. InnoDB
tables can
be of any size even on operating systems where file size is
limited to 2GB.
InnoDB
is included in binary distributions by
default. The Windows Essentials installer makes
InnoDB
the MySQL default storage engine on
Windows.
InnoDB
is used in production at numerous large
database sites requiring high performance. The famous Internet
news site Slashdot.org runs on InnoDB
. Mytrix,
Inc. stores over 1TB of data in InnoDB
, and
another site handles an average load of 800 inserts/updates per
second in InnoDB
.
InnoDB
is published under the same GNU GPL
License Version 2 (of June 1991) as MySQL. For more information on
MySQL licensing, see
https://www.mysql.com/company/legal/licensing/.
Additional resources