Large InnoDB data size even though entire database is MyISAM?

1k views Asked by At

I'm running mysqltuner to tune up my database and I'm running into a very strange occurrence.

Even though the entire database is MyISAM (all tables) it says the following:

[!!] InnoDB data size / buffer pool: 403.1M/128.0M

The default storage engine of the database was InnoDB (even though all tables are MyISAM) so I thought that might be causing the problem somehow but when I changed the default-storage-engine value to MyISAM I still see the same exact InnoDB-related warning in mysqltuner.

So why is this happening and how do I fix it? I'd rather not waste 400M on InnoDB's buffer pool when I'm not using InnoDB to begin with.

Note: What I am NOT trying to do here is discuss the age-old question of MyISAM VS InnoDB, I just need to figure out why InnoDB is eating my resources even though I'm not using it.

1

There are 1 answers

2
RandomSeed On

disambiguation: "Data size" is not "Buffer pool".

Data Size is the size of database files on disk. It can be configured via the innodb_data_file_path server option.

Buffer Pool is the memory (RAM) space used as a buffer for InnoDB tables data and indexes. Its configuration option is innodb_buffer_pool_size.


First, make sure there is no InnoDB table at all in your instance:

SELECT * FROM information_schema.tables WHERE engine='InnoDB';

Then if there is indeed no InnoDB table, you can rebuild the InnoDB tablespace from scratch (only way to reduce the table space, this is an annoying missing feature of MySQL). Even if there are InnoDB tables, you can still rebuild the tablespace to reclaim some unused space (see also this answer for more information).

Notice you cannot set innodb_buffer_pool_size any smaller than 5 MB. But you can disable InnoDB altogether (along with its buffers) with the skip-innodb option.