ACID
*Atomicity states that database modifications must follow an
“all or nothing” rule. Each transaction is said to be “atomic.” If one
part of the transaction fails, the entire transaction fails. It is
critical that the database management system maintain the atomic nature
of transactions in spite of any DBMS, operating system or hardware
failure.
* Consistency states that only valid data will be written to
the database. If, for some reason, a transaction is executed that
violates the database’s consistency rules, the entire transaction will
be rolled back and the database will be restored to a state consistent
with those rules. On the other hand, if a transaction successfully
executes, it will take the database from one state that is consistent
with the rules to another state that is also consistent with the rules.
* Isolation requires that multiple transactions occurring at
the same time not impact each other’s execution. For example, if Joe
issues a transaction against a database at the same time that Mary
issues a different transaction, both transactions should operate on the
database in an isolated manner. The database should either perform Joe’s
entire transaction before executing Mary’s or vice-versa. This prevents
Joe’s transaction from reading intermediate data produced as a side
effect of part of Mary’s transaction that will not eventually be
committed to the database. Note that the isolation property does not
ensure which transaction will execute first, merely that they will not
interfere with each other.
* Durability ensures that any transaction committed to the
database will not be lost. Durability is ensured through the use of
database backups and transaction logs that facilitate the restoration of
committed transactions in spite of any subsequent software or hardware
failures.
=============================InnoDB
=================================
InnoDB
is a transaction-safe (ACID compliant)
storage engine for MySQL that has commit, rollback, and
crash-recovery capabilities to protect user data.
InnoDB
row-level locking (without escalation to
coarser granularity locks) and Oracle-style consistent nonlocking
reads increase multi-user concurrency and performance.
InnoDB
stores user data in clustered indexes to
reduce I/O for common queries based on primary keys. To maintain
data integrity,
InnoDB
also supports
FOREIGN KEY
referential-integrity constraints.
You can freely mix
InnoDB
tables with tables from
other MySQL storage engines, even within the same statement.