Database Research & Development

  • Home
  • NoSQL
    • NoSQL
    • Cassandra
  • Databases
    • Database Theory
    • Database Designing
    • SQL Server Coding Standards
    • SQL Server
    • PostgreSQL
    • MySQL
    • Greenplum
    • Linux
  • Interviews
    • SQL Server Interviews
    • MySQL Interviews
    • SQL Puzzles
  • DBA Scripts
    • SQL Server DBA Scripts
    • PostgreSQL DBA Scripts
    • MySQL DBA Scripts
    • Greenplum DBA Scripts
  • Home
  • Blog Archives !
  • (: Laugh@dbrnd :)
  • Contact Me !
sqlserverinterviews
Home 2016 September MySQL: Why InnoDB Engine stores all databases in one file (ibdata1)?

MySQL: Why InnoDB Engine stores all databases in one file (ibdata1)?

This article is half-done without your Comment! *** Please share your thoughts via Comment ***

In this post, I am going to discuss one of the important topics related to InnoDB Storage Engine of MySQL.

What is a role of the InnoDB ibdata1 file (.idb file)?

The ibdata1 is a file which is using for the purpose of shared tablespace.
I have noticed that this is one of the most important and heavily loaded files of MySQL server.
If we delete this file, we will not be able to get MySQL after restart.

What is the role format file (.frm file) ?
FRM stands for FoRMat, and it is storing data dictionary information for tables in .frm files. It describes the table’s format like table definition, including fields and structure. The name of this file is same as the table name.

If we look at the architecture of InnoDB, it stores the different type of info pages into an ibdata1 file.
like:

  • Table Data Pages.
  • Table Index Pages.
  • Table Metadata.
  • MVCC Data.
  • Other buffer related pages.

There are two basic parameters associated with it.

innodb_file_per_table (disabled):
This is a default setting and because of this InnoDB stores all pages into a single file called ibdata1.
This is a recommended setting for the InnoDB storage engine because it is storing everything into one file and compare to managing all different table files, it is easy to manage everything with the single file.

innodb_file_per_table (enabled):
If we enable this parameter, it creates individual .frm file and .idb file for all InnoDB tables. The ibdata1 will never contain InnoDB data and indexes, it stores only meta data of the tables. This is simply separates table and index pages from the meta data pages.

InnoDB is storing everything into one file because of this default setting innodb_file_per_table disabled.

Many people are trying to separate this file by creating different .idb files, but sometimes it leads to more fragmentation of data and index pages.

To clean up the InnoDB infrastructure using a default ibdata1 file is reasonable, compared to cleaning multiples .idb files.
But as per our requirements, We can change this default setting.

Sep 20, 2016Anvesh Patel
SQL Server: PowerShell Function to find System Admin RolesMySQL: The Truth about InnoDB File Per Table Tablespaces
Comments: 1
  1. Mayur
    August 23, 2018 at 3:55 pm

    great work and really appreciate your help

Anvesh Patel
Anvesh Patel

Database Engineer

September 20, 2016 MySQLAnvesh Patel, database, database research and development, dbrnd, ibdata1, innodb_file_per_table disabled, innodb_file_per_table enabled, MySQL, MySQL Command, MySQL Database Administrator, MySQL Database Designing, MySQL Database Programming, MySQL Error, MySQL Performance Tunning, MySQL Query, MySQL Tips and Tricks
About Me!

I'm Anvesh Patel, a Database Engineer certified by Oracle and IBM. I'm working as a Database Architect, Database Optimizer, Database Administrator, Database Developer. Providing the best articles and solutions for different problems in the best manner through my blogs is my passion. I have more than six years of experience with various RDBMS products like MSSQL Server, PostgreSQL, MySQL, Greenplum and currently learning and doing research on BIGData and NoSQL technology. -- Hyderabad, India.

About DBRND !

dbrnd

This is a personal blog (www.dbrnd.com).

Any views or opinions represented in this blog are personal and belong solely to the blog owner and do not represent those of people, institutions or organizations that the owner may or may not be associated with in professional or personal capacity, unless explicitly stated.

Feel free to challenge me, disagree with me, or tell me I’m completely nuts in the comments section of each blog entry, but I reserve the right to delete any comment for any reason whatsoever (abusive, profane, rude, or anonymous comments) - so keep it polite.

The content of this website is protected by copyright. No portion of this website may be copied or replicated in any form without the written consent of the website owner.

Recent Comments !
  • Anvesh Patel { Sure will do... } – May 27, 12:43 PM
  • Anvesh Patel { Great... } – May 27, 12:41 PM
  • Anvesh Patel { Great... } – May 27, 12:39 PM
  • Anvesh Patel { Great... } – May 27, 12:36 PM
  • Anvesh Patel { Great... } – May 27, 12:28 PM
  • Anvesh Patel { Great... } – May 27, 12:27 PM
  • Anvesh Patel { Great... } – May 27, 12:16 PM
  • Older »
Follow Me !
  • facebook
  • linkedin
  • twitter
  • youtube
  • google
  • flickr
© 2015 – 2019 All rights reserved. Database Research & Development (dbrnd.com)
Posting....