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

Does adding a foreign key constraint in MySQL cause a table rebuild?

I need to alter a large table in order to add a foreign key. Does adding the constraint cause the table to be rebuilt? The referenced table already exists and has an index on the column.
tcoker
  • 23
  • 4
2
votes
2 answers

InnoDB no longer available

Recently changed servers and went from CentOS 5.8 to CentOS 6.4. I installed MySQL 5.1.69 on my new server, and manually swapped /var/lib/mysql. I am not sure what version of MySQL was on my old server, but would expect it to be the same. When I…
user1032531
  • 568
  • 2
  • 11
  • 26
2
votes
1 answer

MySQL MyISAM multi-core optimization

I've noticed that our app does not respond to requests when a demanding request is in execution. Running top seems to identify the source of the problem: top - 13:54:25 up 1 day, 13:43, 2 users, load average: 1.02, 0.98, 0.83 Tasks: 110 total, …
rinogo
  • 329
  • 4
  • 14
2
votes
2 answers

Innodb one file per tablespace

I'm walking into an environment that uses MySQL and Innodb as the storage engine. I'd like to enable innodb_file_per_table to increase performance. Considering all of the databases/tables are currently stored in ibdata1/default ibdata file will…
nulltek
  • 1,251
  • 3
  • 14
  • 22
2
votes
1 answer

Mysql crashing due to InnoDB not able to allocate memory

MySQL crashes every now and then due to, I believe, a large request hitting it above the innodb-buffer-pool-size set in my.cnf (currently at 210M), which I needed to set for mysql to start in the first place. Here are the error logs: 130518…
slyv
  • 121
  • 1
  • 4
2
votes
1 answer

Tuning MySQL of 1.3 G DB, 8GB Ram, High IO Wait

I am having MySQL database of size 1.3 GB on 8 core virtual machine, 8 GB of memory and I am having troubles optimizing the configuration. There is a lot of small rows and lot of joins going on. I've found about this tool:…
Vojtěch
  • 285
  • 3
  • 13
2
votes
1 answer

Reducing memory usage of MySQL

Conclusion: if you really want to use little memory out-of-the-box drop MySQL and use PostgreSQL: it has a ~30Mo memory footprint, i.e. more than 10x less than MySQL; the migration was quite easy be it the server side or application side (using…
Pragmateek
  • 151
  • 2
  • 7
2
votes
2 answers

Is it possible to create a mysql slave from start of masters binlog without copying data first?

info: my tables are all innodb. i know i can create a mysql slave by copying the data from master to slave and noting the position in the binlog and set that on the slave. thus the slave should be able to replay all master binlog entries since the…
david
  • 21
  • 2
2
votes
1 answer

Which is more durable? MyISAM or InnoDB with innodb_flush_log_at_trx_commit=0

I am trying to determine the difference in durability between MySQL's MyISAM and InnoDB when innodb_flush_log_at_trx_commit=0. I am aware of the some of the benefits of InnoDB with ACID. However, under the default settings inserts with InnoDB are…
adamSpline
  • 121
  • 1
2
votes
0 answers

Temporary MySQL Error: 1286 Unknown storage engine 'InnoDB'

I operate a cPanel/WHM server on CentOS 5.8 which is running MySQL 5.5.24. It seems that ever other week or so, some clients websites exhibit the following error: SQLSTATE[42000]: Syntax error or access violation: 1286 Unknown storage engine…
Matthew Clark
  • 121
  • 1
  • 5
2
votes
2 answers

MySQL InnoDB ext3 block size

I'm looking for recommendations for ext3 filesystem block size for MySQL 5.6 using InnoDB. Running a CentOS 5.4 VM in VMware ESXi 5, VMFS 5 datastore on NetApp FibreChannel LUNs (which have 4k chunk size). Using O_DIRECT,…
carillonator
  • 815
  • 3
  • 12
  • 22
2
votes
3 answers

Innodb statistics

We're running InnoDB as a MySQL engine and using phpMyadmin to administer our database. Under Status → Query statistics, phpMyadmin gives us the following: We would like to know where these figures come from because we would like to create a Munin…
Max
  • 3,523
  • 16
  • 53
  • 71
2
votes
2 answers

Does MySQL InnoDB engine use tablecache?

Does MySQL InnoDB engine use tablecache? I migrated from MyIsam to Innodb as the table engine and the monitors for "table-cache" hitrate are super low. Does Innodb use table-cache?
MikeN
  • 8,442
  • 5
  • 23
  • 18
2
votes
1 answer

mysql Innodb engine disappear

I had to change the tmpdir directory from /tmp to /db/tmp/ folder due to the fact I didn't have enough space. When I changed my path and I ran SHOW ENGINES; I got below result; ARCHIVE MRG_MYISAM CSV MYISAM MEMORY But, when I changed the directory…
Kourosh Samia
  • 321
  • 1
  • 5
  • 12
2
votes
1 answer

Monitoring MySQL Rollback Segments

I recently discovered the default open transaction ceiling of 1024 in MySQL. I have since increased the limit using innodb_extra_rsegments. However, I would like to keep my eye on this moving forward. My MySQL version is 5.1.48. Is there a way to…
sreimer
  • 2,218
  • 15
  • 17