Mysql – whether a big (but not used) ibdata1 slow anything down

innodbMySQLperformance

Hi I have an ibdata1 that is around 10 gig. I have gradually migrated to 'file per table' using the innodb_file_per_table=1 option such that there are no big tables in ibdata1 anymore.

I recently read how to clean things up :

https://stackoverflow.com/questions/3927690/howto-clean-a-mysql-innodb-storage-engine/4056261#4056261

My question is, does anyone know if I just leave the big ibdata1 file there, does that cause any kind of performance hit? I know I can reclaim disk space by cleaning things up, but that is not an issue right now. Not taking the system down for a day would be a bigger problem. So, more concerned with server performance or any other side affects.

Thanks!

Don

Best Answer

I think performance of your server should improve as you have already set innodb_file_per_table=1 and migrated bulky tables with this setting, so that all your large tables uses separate ibdata file for InnoDB operations.

Also now onwards all new tables and existing migrated tables will use their own ibdata files instead of default system tablespace file which is 10G larger, hence performance should improve ....IMHO.

InnoDB_file_per_table has these advantages:

  • You can back up or restore a single table quickly without interrupting the use of other InnoDB tables, using the MySQL Enterprise Backup product. See Restoring a Single .ibd File for the procedure and restrictions.

  • Storing specific tables on separate physical disks, for I/O optimization or backup purposes.

  • Restoring backups of single tables quickly without interrupting the use of other InnoDB tables.

  • Using compressed row format to compress table data.

  • Reclaiming disk space when truncating a table.