Questions tagged [innodb]

InnoDB is the main ACID-compliant Storage Engine used in MySQL.

InnoDB is the ACID-compliant Storage Engine used in MySQL. InnoDB also features the use for MVCC (Multiversion Concurrency Control) to support Transaction Isolation Levels for InnoDB. InnoDB is not a standalone database product. It has been distributed as a part of the MySQL database during its early years of InnoBase Oy as a partner with MySQL AB.

In the early days of MySQL, InnoDB was made available to MySQL as an additional transactional storage along with BDB. The company that developed InnoDB, InnoBase Oy, was purchased by Oracle in October 2005. Percona has contributed great improvements to its own Open Source version of InnoDB (XtraDB). Oracle, who eventually became the owner of MySQL via purchasing Sun, has incorporated most of those changes into InnoDB, as well adding improvements of their own. As a result, InnoDB has transformed into a more mature storage engine that handles mulitprocessing and multithreading more robustly. As of December 2010, InnoDB has become the default storage engine for MySQL 5.5.

MySQL 5.5 also has enhancements to facilitate InnoDB in engaging multiple CPUs. Those enhancements were introduced in MySQL 5.1.38 in the InnoDB Plugin only. Those enhancements have now been included with MySQL 5.5.

MySQL 5.5 also comes with new features such as Semisynchronous Replication, Multiple InnoDB Buffers Pools, plugins for user-defined authentication, performance metrics instrumentation, and more !!!

In a recent Oracle press release, one of the new features for MySQL 5.6 is to have InnoDB with FULLTEXT searching. This will be a major step forward for this storage engine as this was one of the most requested and sought after features.

The basic infrastructure of InnoDB centers around three major files

  • ibdata1
  • ib_logfile0
  • ib_logfile1

In conjunction with memory structures, ibdata1 processes info for 6 basic data structures

  • Table Data Pages
  • Table Index Pages
  • Table MetaData (List of Tablespave IDs + Misc Info)
  • MVCC Records
    • Rollback Segments
    • Undo Space
  • Double Write Buffer (Allows Background Page Writes)
  • Insert Buffer (For Collecting/Processing Changes to Secondary Indexes)

Configurations can accommodate

  • Separating Table Data and Index Pages
  • Storing ibdata1 in a Raw Disk Partition
  • Creating Multiple ibdata Files
  • Creating multiple Log Files
  • and more...

There is important cache known as the InnoDB Buffer Pool. As of MySQL 5.5, you can configure multiple buffer pool instances. Prior to MySQL 5.5, there is only one buffer pool instance.

388 questions
3
votes
1 answer

Recover mysql database innodb 'table doesn't exist'

Our server crashed last week and we lost a lot of information. We were able to recover .frm files for the tables, ib_logfile0, ib_logfile1 and ibdata1 but no .ibd. I've tried the innodb-force-recovery on all levels 1 to 6 and a whole lot of other…
FabioG
  • 81
  • 1
  • 1
  • 5
3
votes
2 answers

No changes made but MySQL InnoDB overloading CPU

I haven't changed any scripts or settings what so ever. Now I have CPU load at least 4 times higher. Mysqld is taking around 360 %CPU according to TOP. It's Debian, I'm running some MyISAM tables but most are InnoDB. I have verified that the load…
Saix
  • 111
  • 1
  • 3
  • 9
3
votes
1 answer

High CPU on MySql Fusion-io server

I've just finished reading this old Q&A which had some really good detailed information on a similar setup to ours, though unfortunately our problem (now) is not with replication. MySQL Replication Performance We have a new master database server…
Jordan
  • 31
  • 4
3
votes
2 answers

MySQL SELECT query hangs

On my server I have 6 MySQL databases. They all power Wordpress websites. For some reason, 2 of these databases are not accessible. To my knowledge they use INNODB, but I can't confirm it as even doing a: mysql> use INFORMATION_SCHEMA; mysql> SELECT…
Thomas Lomas
  • 131
  • 1
  • 1
  • 5
3
votes
1 answer

Server crashed, some MySQL databases are broken. Trying to recover with InnoDB recovery, but ibdata1 seems corrupt

I've a problem. Some days ago my root server crashes after a power outage. I realised that the MySQL server won't start. In the logs I find out that an error occured with InnoDB's ibdata1. I've tried the automatic InnoDB recovery program…
Jonniboy
  • 31
  • 1
  • 1
  • 2
3
votes
1 answer

MySQL failed to start. Error 1053. Windows Server 2008 R2

I did a server restart for my web server and on restart, MySQL won't start. If I use taskmanager to kill mysqld.exe and try the start from services console, it gets about 50% through the startup, stalls for a long time, and when it eventually…
Reece
  • 783
  • 2
  • 13
  • 32
3
votes
2 answers

What is the best way to check the status of a MySQL slave that is replicating from a master?

Specifically I have a set of InnoDB tables and we are backing these up into MyISAM tables to provide full text search. The slave DB routinely falls behind the Master. I am looking for advice on diagnostics or commands that can be used to keep track…
IanMulvany
  • 133
  • 4
3
votes
1 answer

MySQL slave replication Seconds behind master increasing?

I started a MySQL slave using innobackupexand the Read_Master_Log_Pos: and the Relay_Log_Pos: are updating however the seconds behind master keeps on increasing (it's at Seconds_Behind_Master:496637 currently and increasing). Any ideas on how to fix…
ks_1010
  • 121
  • 1
  • 2
  • 8
3
votes
2 answers

After adding skip-innodb mysql doesn't start

I am trying to setup these values: #skip-bdb #skip-locking #skip-innodb When I add them to /etc/mysql/my.cnf and even if I turn ON of of, them after I do the service restart mysql fails to start, and no error message printed. sudo service mysql…
Pentium10
  • 444
  • 1
  • 9
  • 23
3
votes
1 answer

mysql 5.1 - innodb - query_cache_size - 9,418,108 queries have been removed from the query cache due to lack of memory

Currently running on a 16GB system - Ubuntu 64 bit. INnodb Buffer Pool is set to 10GB. tuning-primer shows the following: QUERY CACHE Query cache is enabled Current query_cache_size = 512 M Current query_cache_used = 501 M Current query_cache_limit…
Tom C
  • 33
  • 2
3
votes
2 answers

Can fragmented MySQL innodb tables cause I/O issues? "task hung for 120 seconds" crashes?

Large innodb databases with load spikes seem to be causing random crashes with "task hung for 120 seconds" in the console. There are no logs being written to the system during these crashes. The innodb tables are fairly large, 20+ gigs in…
Tom G
  • 43
  • 1
  • 5
3
votes
2 answers

Mysqld InnoDB crash

my MySQL server just crashed and I cannot restart/recover it. I've tried: /etc/init.d/mysql restart Stopping MySQL database server: mysqld. Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed! and mysqld --verbose…
Petr Peller
  • 193
  • 1
  • 7
3
votes
2 answers

MySQL 5.5 InnoDB = OFF?

We run a server with MySQL 5.5. 95% of the tables are set to the InnoDB engine. However whenever I look at the my.ini file (using the MySQL Workbench) under mysqld section innodb is unchecked and OFF is selected in the drop down. I don't see this…
Jeff
  • 1,089
  • 5
  • 26
  • 46
3
votes
1 answer

InnoDB erratic performance

I'm doing some tests with a really simple InnoDB table (named Test) with the following structure: Id int(10) unsigned NOT NULL AUTO_INCREMENT UserId int(10) NOT NULL Body varchar(512) COLLATE utf8_unicode_ci NOT NULL CreatedAt datetime NOT NULL one…
user257938
  • 31
  • 1
3
votes
3 answers

How to detect if InnoDB has pool size big enough?

I found out how much the innodb pool size has allocated memory from show innodb status but I couldn't figure out how much actually it uses. Maybe it needs more or I can take some memory off from it? How to find it out? Oh and one question, as I'm…
Rihards
  • 769
  • 2
  • 12
  • 22