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

Why ibdata1 is still growing when I have used innodb_file_per_table in MySQL 5.1

All my table in the db are created after I enabled the option "innodb_file_per_table", so I don't understand why ibdata1 is still growing from time to time, even with a very slow speed.
Howard
  • 2,135
  • 13
  • 48
  • 72
3
votes
1 answer

MySQL InnoDB: how to switch to Barracuda format?

In new MySQL versions Barracuda file format was introduced. So I havew a few questions: Is it working only with file_per_table option? How to switch existing system to it (preferably the whole tablespace) other than by reimporting everything from…
Vladislav Rastrusny
  • 2,671
  • 12
  • 42
  • 56
3
votes
1 answer

Mysql InnoDB optimisation

(asked on stackoverflow but was suggested to move here!) I'm having some trouble understanding InnoDB usage - we have a drupal based DB (5:1 read:write) running on mysql (Server version: 5.1.41-3ubuntu12.10-log (Ubuntu)). Our current Innodb…
DOS
  • 33
  • 1
  • 3
3
votes
3 answers

How to disable all MariaDB storage engine except MyISAM?

(in my.cnf) I've tried default-storage-engine = myisam, skip-innodb, and commented out every innodb features, but none of them works
cewebugil
  • 715
  • 3
  • 9
  • 12
3
votes
4 answers

MySQL: how to convert many MyISAM tables to InnoDB in a production database?

We have a production database that is made up entirely of MyISAM tables. We are considering converting them to InnoDB to gain better concurrency & reliability. Can I just alter the myISAM tables to InnoDB without shutting down MySQL? What are the…
Continuation
  • 3,080
  • 5
  • 30
  • 38
3
votes
2 answers

Restoring a slave MySQL database from raw backups of master gives InnoDB tablespace errors

I have a master/slave replication setup where I use InnoDB and MyISAM tables in over 7000 databases that I want to copy from my master to the slave to restore replication. Both servers were running Ubuntu 10.04.2 LTS (which uses the mysql-server…
Edward van Kuik
  • 226
  • 2
  • 6
3
votes
1 answer

MySQL's innodb_file_per_table and "too many tables"

I'm running MySQL (5.0 but I don't think it matters for anything after 4.1) and I've seen advice about using the innodb_file_per_table configuration option for InnoDB tables. This is usually done so you can better control how much disk space is used…
mpeters
  • 233
  • 2
  • 11
3
votes
1 answer

high level design of sms transaction handling system

I have been tasked with designing a system do handle SMS transactions. Transactions come in form of HTTP requests from a service provider. In the process of handling transaction, system in question will need to contact several other systems outside…
JonsJ
3
votes
1 answer

What are reasonable values for --throttle on xtrabackup?

Percona's xtrabackup utility has a --throttle option to reduce the IO load of the backup job. The docs say that the value passed is the number of read/write pairs per second. Is 1000/sec an appropriate value on modern hardware? How about 5? I cannot…
allaryin
  • 323
  • 4
  • 10
3
votes
1 answer

Innodb : cannot allocate the memory for the buffer pool

My innodb keeps crashing. This is the error message below. Does anyone know why this keeps happening? InnoDB: by InnoDB 49201616 bytes. Operating system errno: 12 InnoDB: Check if you should increase the swap file or InnoDB: ulimits of your…
mingyeow
3
votes
1 answer

What are the pros & cons of these MySQL engines for OLTP -- XtraDB, PBXT, or TokuDB?

I'm working on a social website with an approximate read/write split of 90/10. Trying to decide on a MySQL engine. The ones I'm interested in are: XtraDB PBXT TokuDB What are the pros and cons of them for my use case? A few specific…
Continuation
  • 3,080
  • 5
  • 30
  • 38
3
votes
2 answers

Tuning mysql's query cache

I'm looking into tuning the query cache on mysql on my VPS [a 360MB setup]. When I started, it was set at 32MB, and I was getting a non-trivial amount of qcache_lowmem_prunes. I added a cronjob to run FLUSH QUERY CACHE periodically, which helped,…
Mikeage
  • 2,741
  • 6
  • 26
  • 37
3
votes
2 answers

MySQL - Select queries 10x slower on Azure VM vs on-prem VM

We have been working on a project to migrate a MySQL database from an on-premise Linux server to a Windows VM on Azure (IaaS). (There's a specific reason because of which we have gone with the IaaS option instead of the Azure MySQL PaaS…
3
votes
1 answer

MariaDB table has a metadata lock, but no blocking thread

I have a MariaDB 15.1 installed on a Debian system: $ mariadb --version mariadb Ver 15.1 Distrib 10.4.14-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 A script regularly loads data into a table with LOAD DATA LOCAL INFILE. The script…
monday
  • 185
  • 1
  • 1
  • 5
2
votes
1 answer

InnoDb Overhead?

I just converted several large tables from MyISAM to InnoDB. When I view the tables in phpMyAdmin, they are showing a significant amount of overhead (One table has 6.8GB). Optimizing the tables (which isn't a supported command on InnoDB) has no…
Rimary