Buenos días,
en el trabajo tenemos una base de datos que está creciendo a lo bestia. Vamos por 150GB y es insostenible, con lo que hemos decidido hacer purga de históricos.
Es una MySQL con InnoDB. Si borramos registros de tablas NO recuperamos espacio. Esto lo hemos solventado con la opción "innodb_file_per_table=1". Ahora tengo un fichero ibd por cada tabla. Bien.
La tabla más gorda tiene 4 meses de datos, y quiero quedarme sólo con el último. Si le lanzo una consulta que me borre todo lo anterior a ese mes:
1) Me tarda días (literalmente)
2) Me da error de timeout o de lock de tabla (no hay ningún proceso salvo el propio cliente SQL en local).
He decidido hacerlo por trozos: de 2 semanas en 2 semanas.
Algunos delete me han tardado 5 minutos, y otros los he dejado toda la noche y nada. No lo entiendo porque la carga es la misma (2 semanas).
¿Alguien tiene idea de por qué se comporta así o de cómo solucionarlo?
Gracias!