Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Borrar registros me tarda días

Estas en el tema de Borrar registros me tarda días en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 03/04/2017, 00:28
 
Fecha de Ingreso: noviembre-2003
Mensajes: 456
Antigüedad: 16 años
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!
  #2 (permalink)  
Antiguo 03/04/2017, 08:25
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.404
Antigüedad: 13 años, 3 meses
Puntos: 774
Respuesta: Borrar registros me tarda días

150GB isostenible? creciendo a lo bestia? Eso realmente es muy poco para el motor de bases de datos.

Ahora en cuanto a los delete, lo mejor es hacerlo por "batch" como lo estas haciendo, porque tarda menos en unas semanas que en otras? bueno pues la razon puede ser que aunque sea el mismo rango(2 semanas) haya diferencias en cuanto al numero de registros, para hacerlo mas standar, te recomendaria ir borrando no se cada 10,000 registros por batch
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: registro, registros, sql, tabla, tarda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:28.