Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/04/2017, 23:28
banderas20
 
Fecha de Ingreso: noviembre-2003
Mensajes: 456
Antigüedad: 20 años, 5 meses
Puntos: 1
Exclamación Borrar registros me tarda días

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!