Я несколько раз читал, что после того, как вы удалили строку в таблице InnoDB в MySQL, ее пространство не будет повторно использовано, поэтому, если вы сделаете много INSERT в таблицу, а затем периодически УДАЛИТЕ несколько строк, таблица будет использовать все больше и больше пространство на диске, как если бы строки вообще не удалялись.Повторное использование пространства, занятого удаленными строками?
Недавно мне сказали, что пространство, занятое удаленными строками, повторно используется, но только после того, как некоторые транзакции завершены и даже тогда - не полностью. Я сейчас смущен.
Может кто-нибудь, пожалуйста, подумает об этом? Мне нужно сделать много INSERT в таблицу InnoDB, а затем каждые X минут мне нужно УДАЛИТЬ записи, которые больше, чем Y минут. У меня проблема постоянно растущей таблицы InnoDB здесь, или это паранойя?
Seb, пожалуйста, дайте официальную ссылку для этого? –
@GautamSomani Это ответ на 6 лет, у меня нет ссылок, но я мог бы найти это: https://dev.mysql.com/doc/refman/5.1/en/optimize-table.html: ' Удаленные строки сохраняются в связанном списке, а последующие операции INSERT повторно используют старые позиции строк. Вы можете использовать OPTIMIZE TABLE для восстановления неиспользуемого пространства и дефрагментации файла данных. После обширных изменений в таблице этот оператор может также повысить производительность операторов, которые используют таблицу, иногда значительно. «Я уверен, что если вы Google, вы сможете найти более официальную информацию об этом. – Seb