On the same MySQL (v. 5.5) service i have multiple database.
One of this databases has a table with 29'000'000 records (3.3 GiB).
When i delete some records, MySQL seems reserve the free space only for the current table. I see into table inspector (MySQL Workbench): Data Free 1.4 GiB.
I'm wrong or the space used by a table is never reused by other table or other database?
Unlike some other engines, InnoDB does not generally reclaim free space, meaning your tables, once at a certain size, remain there pretty much perpetually. One way to recover this space is the somewhat painful OPTIMIZE TABLE
command which can rebuild and reindex the table, freeing that up.
This does lock the table for the duration and on large tables can take hours, so use carefully.