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
2
votes
2 answers

What happens to InnoDB and MyISAM tables if the power fails during a transaction?

We have two MySQL tables, one is InnoDB and the other is MyISAM. If I execute a chunk of inserts in a single transaction on both tables and the power fails in the middle, what will be the status? What will happen to the newly inserted data on the…
Ash
  • 21
  • 3
2
votes
3 answers

Plesk: libmysqlclient_16 not defined in file libmysqlclient_r.so.16

I've found this error in my logs: relocation error: /usr/lib64/libmyodbc5.so: symbol strmov, version libmysqlclient_16 not defined in file libmysqlclient_r.so.16 with link time reference yum-error-log yum install mysqlclient16 ... 184 packages…
mate64
  • 1,681
  • 4
  • 18
  • 29
2
votes
2 answers

Unknown table engine 'InnoDB' after deleting ibdata1 file

I was having innodb with one ibdata file. i have changed it in my.cnf to have ibd file for every table (innodb_file_per_table). then i run the following query on all of my innodb tables to have its own ibd file alter table tablename…
Alaa Alomari
  • 638
  • 6
  • 19
  • 37
2
votes
1 answer

Transferring InnoDB database via rsync

We are in the process of switching to a new RAID array and need to copy our MySQL InnoDB database to the new RAID array while minimizing downtime (50GB database). I understand that using rsync on a running MySQL database will not produce a usable…
smusumeche
  • 643
  • 4
  • 8
  • 19
2
votes
1 answer

mysql innodb problem

seeing the following in my mysql error log file: InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes InnoDB: than specified in the .cnf file 0 268435456 bytes! 110927 18:36:37 [ERROR] Plugin 'InnoDB' init function returned…
CMag
  • 707
  • 2
  • 11
  • 32
2
votes
2 answers

What do I need to know in order to change a table schema that is being replicated?

I need to update the schema as I accidentally left out some foreign key constraints. The database server is MySQL 5.1.48 and the tables being altered are InnoDB. The server is replicated using Master/Slave. What do I need to know or do to properly…
Kevin Herrera
  • 175
  • 1
  • 5
2
votes
2 answers

Whats the best practice for defragmenting a MySQL InnoDB table in production?

A lot of my Innodb tables require 'defragmentaion'. My understanding is that 'OPTIMIZE' may not be the best way to do it. Some people suggest doing a 'ALTER TABLE' to have Mysql rebuild (and therefore defragment) the table. Does anyone have any…
ae.
  • 231
  • 1
  • 7
2
votes
2 answers

MySQL config for drupal

I am running MySQL 5.0.75 on Ubuntu on a dual core machine with 8 gigs of ram. I am running a Drupal 5 and Drupal 6 site of the database. I am sure my MySQL config is not optimal but I am wondering if there is any low hanging fruit I can address.…
Jason Christa
  • 622
  • 4
  • 11
  • 21
2
votes
2 answers

Copying /var/lib/mysql files over resulted in InnoDB corruption

My server had to be re-installed yesterday so they replaced the hard drive and hooked the old one up via USB. I grabbed the database files (/var/lib/mysql) and downloaded them and then I erased all the db files for my local test server and replaced…
Brandon
  • 426
  • 5
  • 17
2
votes
2 answers

MySQL not using specified RAM anymore

A few days ago I got a new machine setup running CentOS 5.6 (64bit), with 12GB ddr3 ram, 4x SAS 15k rpm drives in RAID10. On this machine I'm running MySQL Server version: 5.1.39-maria-beta-ourdelta67-log, which I have been using on previous servers…
Mr.Boon
  • 1,471
  • 4
  • 24
  • 43
2
votes
2 answers

Switching To `innodb_file_per_table` In MySQL

If I turn on innodb_file_per_table (not currently active), will it destroy my existing tables?
Ian
  • 335
  • 1
  • 3
  • 19
2
votes
1 answer

InnoDB options crashing mysql start AND mysql tuning

I have an innodb on a Ubuntu 10.10 server running on an ESXi platform. I have dedicated 8 CPUs, 32 Gigs of ram, and files stored in a Raid 5 HP SAN of SAS 10k rpm disks. I'm expecting FAST queries! However: select count('x') takes 45 seconds for 75…
coderego
  • 175
  • 2
  • 8
2
votes
1 answer

show table status not showing innodb tables

After a server reboot I noticed that phpMyAdmin was not showing my innodb tables, just the myisam. I logged into mysql server directly and while show tables is showing the innodb tables, when I use 'show table status from mydb' the inndb tables are…
Ian
  • 251
  • 2
  • 10
2
votes
1 answer

CHECK TABLE locking a large (12GB) InnoDB table on MySQL

I'm having problems with a large MySQL InnoDB table and I was wondering if anyone here had advice for improving stabililty. The issue that I'm having is that CHECK TABLE ... FAST will lock the table, preventing any reading, and for a table this…
Sam Minnée
  • 143
  • 1
  • 6
2
votes
1 answer

How do you load a database with foreign keys on the master without out breaking replication?

I have a MySQL master-slave setup. One master; One slave; Lots of databases. I'm moving an app into this setup from third party. They provided a mysqldump file of the data and database structure. It contains a single database with innodb…
txyoji
  • 385
  • 6
  • 13