InnoDB

InnoDB

Infobox_Software
name = InnoDB
logo =
caption =
developer = Oracle Corporation
latest_release_version =
latest_release_date =
operating_system = Cross-platform
genre = Database engine
license = GPL or proprietary
website = [http://www.innodb.com/ InnoDB.com]

InnoDB is a storage engine for MySQL, included as standard in all current binaries distributed by MySQL AB. Its main enhancement over other storage engines available for use with MySQL is ACID-compliant transaction support, similar to PostgreSQL, along with foreign key support (declarative referential integrity).

InnoDB became a product of Oracle Corporation after their acquisition of Innobase Oy in October 2005. [cite web
url = http://www.innodb.com/licenses.php
title = Oracle Announces the Acquisition of Open Source Software Company, Innobase
publisher = Oracle
accessdate = 2008-07-31
] The software is dual licensed; it is distributed under the GNU General Public License, but can also be licensed to parties wishing to combine InnoDB in proprietary software. [cite web
url = http://www.innodb.com/licenses.php
title = Licensing MySQL and InnoDB
publisher = InnoDB.com
accessdate = 2008-07-31
]

Comparison with MyISAM

MyISAM is the usual alternative engine, and the following are some of the properties that distinguish the two:
#InnoDB recovers from a crash or other unexpected shutdown by replaying its logs. MyISAM must fully scan and repair or rebuild any indexes or possibly tables which had been updated but not fully flushed to disk. Since the InnoDB approach is approximately fixed time while the MyISAM time grows with the size of the data files, InnoDB offers greater perceived availability and reliability as database sizes grow.
#MyISAM relies on the operating system for caching reads and writes to the data rows while InnoDB does this within the engine itself, combining the row caches with the index caches. Dirty (changed) database pages are not immediately sent to the operating system to be written by InnoDB, which can make it substantially faster than MyISAM in some situations.
#InnoDB stores data rows physically in primary key order while MyISAM typically stores them mostly in the order in which they are added. Storing the rows in primary key order corresponds to the MS SQL Server feature of “Clustered Indexes” and the Oracle feature known as "index organized tables." When the primary key is selected to match the needs of common queries this can give a substantial performance benefit. For example, customer bank records might be grouped by customer in InnoDB but by transaction date with MyISAM, so InnoDB would likely require fewer disk seeks and less RAM to retrieve and cache a customer account history. On the other hand, inserting data in orders that differ substantially from primary key (PK) order will presumably require that InnoDB do a lot of reordering of data in order to get it into PK order. This places InnoDB at a slight disadvantage in that it does not permit insertion order based table structuring.
#InnoDB currently does not provide the compression and terse row formats provided by MyISAM, so both the disk and cache RAM required may be larger. A lower overhead format is available for MySQL 5.0, reducing overhead by about 20% and use of page compression is planned for a future version.
#When operating in fully ACID-compliant modes, InnoDB must do a flush to disk at least once per transaction, though it will combine flushes for inserts from multiple connections. For typical hard drives or arrays, this will impose a limit of about 200 update transactions per second. If you require higher transaction rates, disk controllers with write caching and battery backup will be required in order to maintain transactional integrity. InnoDB also offers several modes which reduce this effect, naturally leading to a loss of transactional integrity. MyISAM has none of this overhead, but only because it does not support transactions.

References

ee also

*Falcon
*ISAM
*MyISAM

External links

* [http://www.innodb.com/ Official website]
* [http://www.mysqltutorial.org/understand-mysql-table-types-innodb-myisam.aspx InnoDB and other table types in MySQL]
* [http://dev.mysql.com/doc/mysql/en/innodb.html InnoDB in the MySQL manual]


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • InnoDB — Тип СУБД (Storage Engine для MySQL) Разработчик Oracle Лицензия Двойная GPLv2/проприетарная[1] Сайт http://www.innodb.com/products/innodb/ …   Википедия

  • InnoDB — es una tecnología de almacenamiento de datos de código abierto para la base de datos MySQL, incluido como formato de tabla estándar en todas las distribuciones de MySQL AB a partir de las versiones 4.0. Su característica principal es que soporta… …   Wikipedia Español

  • InnoDB — Entwickler Innobase Oy Inc. (Oracle Corporation) Betriebssystem Unix, Linux, Windows, Mac OS X, i5/OS, OpenVMS Kategorie Storage Engine Lizenz …   Deutsch Wikipedia

  • InnoDB — est un moteur de stockage pour le SGBDR MySQL, il est inclus d origine dans toutes les distributions fournies par MySQL AB. Son principal avantage par rapport aux autres moteurs de stockage de MySQL est le support des transactions conforme aux… …   Wikipédia en Français

  • Comparison of MySQL database engines — This a comparison between the two primary database engines (InnoDB and MyISAM) for the MySQL database management system (DBMS). A database engine (or storage engine ) is the underlying software component that a DBMS uses to create, read, update… …   Wikipedia

  • MySQL — Developer(s) MySQL AB (A subsidiary of Oracle) Initial release May 23, 1995 (1995 05 23 …   Wikipedia

  • Comparison of relational database management systems — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

  • MYSQL — Entwickler: Sun Microsystems (bis Februar 2008: MySQL AB) Aktuelle Version: 5.1.34 (Community Server) (7. April 200 …   Deutsch Wikipedia

  • MySql — Entwickler: Sun Microsystems (bis Februar 2008: MySQL AB) Aktuelle Version: 5.1.34 (Community Server) (7. April 200 …   Deutsch Wikipedia

  • Mysql — Entwickler: Sun Microsystems (bis Februar 2008: MySQL AB) Aktuelle Version: 5.1.34 (Community Server) (7. April 200 …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”