Google
 
   
Login
Username:

Password:


Lost Password?

Register now!
Search
Main Menu
top books
Polls
What do you think about php-deluxe.net?
Excellent!
Cool
Hmm..not bad
What the hell is this?
encyclopedia
recommendation
Freenet DSL
Who's Online
11 user(s) are online (9 user(s) are browsing encyclopedia)

Members: 0
Guests: 11

more...
browser tip
recommendation!
Sponsored
partner

InnoDB

InnoDB is a storage engine for MySQL, included as standard in all MySQL AB distributions. Its main enhancement over other storage engines available for use with MySQL is ACID-compliant Database transaction support.

InnoDB is now a product of Oracle Corporation after their [http://www.oracle.com/innodb/index.html Acquisition of InnoDB Oy Inc].

MyISAM is the usual alternative engine and the following properties are some which 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. 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 is likely to use far fewer disk seeks and less RAM to retrieve and cache a customer account history. *InnoDB currently uses less compression and longer row formats than MyISAM, so both the disk and cache RAM space required may be larger. A lower overhead format is present in 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 normal hard drives or arrays this imposes a limit of about 200 update transactions per second. For this reason, disk controllers with write caching and battery backup are often recommended where high transaction rates are expected. InnoDB offers several modes which reduce this effect, while also removing or reducing the ACID compliance of the engine. MyISAM has none of this overhead because it does not need to support transactions.

Performance can favor either MyISAM or InnoDB, depending on the specific application. Reliability always favors InnoDB.

=External links=

*[http://www.innodb.com/ Official site] *[http://www.oracle.com/ Oracle Corporation] - the owners *[http://dev.mysql.com/doc/mysql/en/innodb-overview.html InnoDB overview]