I have an InnoDB table which looks like this right now:
The table is around 126GB big, but I have read that InnoDB's default can hold up to 64 TB of data. Is this correct?
I ask because of the column "Data Free" which is very small compared to "Data Length" and soon will be 0 I guess.
Do I need to do something here? I mean 126GB is nothing compared to 64 TB.
Does MySQL manage this all by itself?


This was to long for comment:
Yes, there are big problems with performance if you only have one file. In the low level, MySQl uses the file handles from the system and only one process can write to a file. If you have a file for each table, mysql occupies 3 or 4 handles per table. This makes it much easier (for the system) to expand a table. There is also a file handle cache that needs to be adjusted. If there are no free file handles left (because they are not defined enough), MySQL has to close another table when reading or writing a table, open the new one and can then work with it. However, if the old table needs to be used again in the next query, the same thing happens in reverse. And these system calls, like open and close file, take a very long time to access.
Furthermore, MySQL NEVER releases disk space once it has been used. Although it is used again internally, everything on the disk remains the same.
Furthermore, if an error occurs, it is easier to recover a table than a monster file with all tables.
Since you have a lot of disk space, you can adjust the options in the ini and then copy the tables and copy them back with CREATE TABEL, then the new tables will be created as individual files.
You will be amazed at the speed gain you can achieve.