He leído varias veces que después de eliminar una fila en una tabla InnoDB en MySQL, su espacio no se reutiliza, por lo que si hace una gran cantidad de INSERT en una tabla y luego ELIMINA periódicamente algunas filas, la tabla usará más y más espacio en el disco, como si las filas no se hubieran eliminado en absoluto.¿Se vuelve a utilizar el espacio ocupado por las filas eliminadas?
Recientemente me han dicho que el espacio ocupado por las filas eliminadas se vuelve a utilizar, pero solo después de que se hayan completado algunas transacciones e incluso entonces, no del todo. Ahora estoy confundido.
¿Puede alguien darme sentido a esto? Necesito hacer muchos INSERT en una tabla InnoDB y luego cada X minutos que necesito para ELIMINAR registros que tienen más de Y minutos de antigüedad. ¿Tengo algún problema con la creciente tabla InnoDB aquí, o es paranoia?
Seb, ¿pueden darme algún enlace oficial para esto? –
@GautamSomani Esta es una respuesta de hace 6 años, no tengo enlaces disponibles, pero podría encontrar esto: https://dev.mysql.com/doc/refman/5.1/en/optimize-table.html: ' Las filas eliminadas se mantienen en una lista vinculada y las operaciones subsiguientes de INSERT reutilizan las posiciones de fila antiguas. Puede usar OPTIMIZE TABLE para reclamar el espacio no utilizado y desfragmentar el archivo de datos. Después de grandes cambios en una tabla, esta afirmación también puede mejorar el rendimiento de las declaraciones que usan la tabla, a veces significativamente. "Estoy seguro de que si buscas en Google podrás encontrar más información oficial sobre esto. – Seb