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
5
votes
1 answer

MySQL transaction issue with Django and Amazon RDS

I'm having a problem with a MySQL 5.5 database instance running on Amazon RDS. Periodically (once every couple of days) a transaction will fail to complete and appears to leave the tables locked. Normally the transaction times out and everything…
5
votes
1 answer

16 Cores 12 GB RAM Dedicated MySql Configuration

I have a dedicated 16 Cores 12 GB RAM Mysql server which is performing quite badly since I configure it for a 16 GB server and I guess that explains why in the world the site now takes more than 500 seconds to render a single page. Im using…
kornesh
  • 163
  • 1
  • 1
  • 8
5
votes
2 answers

MySQL 5.5.9 Query Cache not working when schemas have hyphens ("-") in their name

I am running MySQL 5.5.9 x86_64 RPM as downloaded from mysql.com. Running on CentOS 5.5 Xen DomU. I have enabled the Query_cache however MySQL NEVER uses it. All of my tables are InnoDB. Why is the Qcache never hit? UPDATE 2: I have found this is…
thepearson
  • 870
  • 10
  • 18
5
votes
1 answer

Mysql disaster recovery

We just got a major disaster: somebody made an uncontrolled update on the production database, and obviously, the backup process is not working since a long time, so we got a major data loss. A 40 millions rows table is now full of garbage. Does…
Alexis Dufrenoy
  • 235
  • 1
  • 3
  • 11
5
votes
2 answers

MySQL InnoDB table shows a negative number of rows in phpMyAdmin

I just converted a MyISAM table to InnoDB with around 1.4 million rows. When I converted it to InnoDB, it now shows -1.4 million rows. The table still works as expected, but why does it shows negative in the rows column?
James Simpson
  • 1,651
  • 2
  • 15
  • 31
5
votes
1 answer

MySQL and large pages/hugetlb performance gain in numbers?

MySQL has large page/hugetlb support for InnoDB. And there's plenty of posts (example) on the topic. But does anyone have examples of what performance changes they saw ? I have seen other database systems gain performance from using hugetlb. Eg. a…
user53031
  • 51
  • 2
5
votes
2 answers

MySQL InnoDB Corruption after power outage, possible to recover?

I recently started trying to get Redmine up and running after a power outage that seems to have corrupted our InnoDB database in MySQL. Redmine had an extensive set of documentation that I would like to get even if redmine isn't able to run. The…
Tim Hackett
4
votes
0 answers

MySQL (InnoDB) - processes waiting on futex

Currently troubleshooting a MySQL server spending a lot of time in futex syscalls. All databases are InnoDB and seeing high load on my 16 core machine, and slightly more than half of CPU time is in system. Running strace on a process shows it…
beefsack
  • 141
  • 2
4
votes
7 answers

Is there any equivalent of mysqlhotcopy for InnoDB?

Currently I'm using mysqldump to make backups which is slow, but OKish. The big problem is restoring database, which takes a few days. The dump is around 7GB gzipped, so it's not a tiny database, but it shouldn't be outside the range of reasonable…
taw
  • 547
  • 2
  • 5
  • 13
4
votes
1 answer

InnoDB: Fatal error: cannot allocate memory for the buffer pool

MySQL Seems to be crashing quite often, I'd say every hour or so. The only thing running on this server that is using MySQL is a Drupal installation that I'm working on, there's only one person that's using it and it literally has around three…
Luke Berry
  • 141
  • 1
  • 5
4
votes
2 answers

Dropping Index on 10GB+ InnoDB table takes over 4 hours

This is the table I'm working with: CREATE TABLE IF NOT EXISTS `checklist_answer` ( `id` varchar(36) NOT NULL, `created_by` varchar(36) NOT NULL, `date_created` datetime NOT NULL, `updated_by` varchar(36) NOT NULL, `date_updated` datetime…
Toby
  • 41
  • 1
  • 2
4
votes
2 answers

Migrating from MyISAM to XtraDB

Just a few questions that I just can't find anywhere about migrating to XtraDB. My group has been using MyISAM dbs for production and was wondering how hard is it to migrate to Percona's XtraDB and how would you go about doing so? Would I have to…
Aaron Nguyen
  • 55
  • 2
  • 7
4
votes
1 answer

mysql - can't drop table does not exist, can't create table exists

After a server crash we are having some very strange issues with one particular table reference. Opting for a restoration from backup the database was dropped and a backup SQL dump loaded, only this fails on the create table for cache_content with…
Oneiroi
  • 2,063
  • 1
  • 15
  • 28
4
votes
2 answers

MySql Data Loss - post mortem analysis - RackSpace Cloud Server

After a recent 'emergency migration' of a RS cloud server, the mysql databases on our server snapshot image proved to be days out of date from the backup date. And yet files that were uploaded through the impacted webapp had been written to the…
marfarma
  • 281
  • 1
  • 3
  • 11
4
votes
1 answer

Is it safe to modify innodb_data_file_path value for mysql 5?

I recently experienced data corruption after changing the value of this parameter in my.cnf from : innodb_data_file_path = ibdata1:10M:autoextend:max:128M to : innodb_data_file_path = ibdata1:10M:autoextend:max:256M I am not completely sure this…
drcelus
  • 1,254
  • 4
  • 14
  • 28