Questions tagged [innodb]

InnoDB : MySQL's ACID-compliant Storage Engine

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, or System Tablespace (See InnoDB Architecture)
  • ib_logfile0 (See InnoDB Architecture)
  • ib_logfile1 (See InnoDB Architecture)

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

  • Table Data Pages
  • Table Index Pages
  • Table MetaData (List of Tablespace 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)

InnoDB Architecture

InnoDB Architecture

InnoDB Configurations can accommodate the following

  • Separating Table Data and Index Pages from the System Tablespace
  • Storing the System Tablespace in a Raw Disk Partition
  • Creating Multiple System Tablespace 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.

2231 questions
2
votes
0 answers

innodb corrupted - how to rebuild it?

Well, long story... I was working in my iMac, in a huge project, using Mysql Communit. Today, I had a energy problem, and guess what, the computer turned off and MySql does not started anymore. After look in logs, I saw the following…
bazilio
  • 21
  • 2
2
votes
0 answers

mysql.innodb_index_stats

I am seeing many errors like the following for my MySQL instance. It appears that it is complaining about an index that does not exist anymore. This is an InnoDB table. What do I need to do to update the innodb_index_stats to reflect the new…
Rob L
  • 21
  • 4
1
vote
1 answer

Can we use innodb to store latitutude and logitude and retrieve 20 closest points well?

I've heard that innodb Why innodb doesn't store geospatial data? store geospatial data but cannot index it. Not really sure what it means. Is it a good idea to ask 20 closest businesses if point is stored in innodb?
user4951
  • 1,355
  • 5
  • 20
  • 39
1
vote
0 answers

InnoDB: very slow random updates, hanging in "updating" state

I've been fighting my problem for the whole last week, studying stackexchange threads with similar issues in the first place. The main problem is that after switching from MyISAM to InnoDB (transactions became mandatory, with the ability to roll…
N A
  • 11
  • 3
0
votes
1 answer

How to resolve "InnoDB data dictionary has tablespace id N"

I recently messsed up a migration to table-per-file for my dbs. In the end I (thought) I dropped all dbs, deleted any left over files, and then started over from scratch, importing only dbs I needed as I went. However, today I find loads of these in…
user50849
  • 263
  • 1
  • 3
  • 12
0
votes
1 answer

Moving Mysql 5.7 database from windows 7 pc to windows 10 pc Mysql 8.0. Can see database in files, but cannot open?

I have been running a Java project created using Netbeans and a Mysql 5.7 database on an HP Windows 7 PC. I moved the project to a Lenovo Windows 10 PC using Netbeans and Mysql 8.0. I can see the database with the ibdata1 file and all the tables…
0
votes
2 answers

How to remove primary clusterset from cluster

I want to fully get rid of clusterset in order to switch the single primary into multi primary but I can't get rid of the innodb clusterset from my main primary clusterset! how should I do it? I get below error: ERROR: Cannot remove the PRIMARY…
0
votes
1 answer

Concern with CHECK TABLE on large InnoDB 24x7 table,

Will CHECK TABLE on large InnoDb table causing issue with blocking of online transactions? Assuming the table size is 5GB.
0
votes
1 answer

Recovering deleted records from ibdata1

Is it possible to recover deleted rows from ibdata1? I have only ibdata1 file and no other files or tables. I want to recover all table structures and datas with deleted records. Is it possible ?