Heredé una base de datos y estoy buscando limpiarla y acelerarla. Tengo una tabla que contiene 30,000,000 filas, muchas de las cuales son datos basura insertados debido a un error en nombre de nuestro programador. Antes de agregar nuevos índices más optimizados, convertí la tabla de MyISAM a InnoDB y estoy buscando eliminar muchas de las filas que contienen datos basura.
La base de datos es MySQL 5.0 y tengo acceso de root al servidor. Primero estaba ejecutando estos comandos a través de Adminer y luego phpMyAdmin, ambos con los mismos resultados.
El comando que estoy ejecutando es,
DELETE
FROM `tablename`
WHERE `columnname` LIKE '-%'
Básicamente, elimine cualquier cosa en esta columna que comience con un guión -
.
Funciona durante aproximadamente 3-5 minutos y luego, cuando veo la lista de procesos, desaparece.
Entonces corro
SELECT *
FROM `tablename`
WHERE `columnname` LIKE '-%'
y devuelve millones de filas.
¿Por qué no se completa mi declaración de eliminación?
PD: Soy consciente de lo desactualizado que está MySQL 5.0. Estoy trabajando para mover la base de datos a MySQL 5.6 w InnoDB (tal vez MariaDB 10 w XtraDB) pero hasta que eso suceda, espero responder esto con la base de datos tal como está.
-
Editar eliminado, ver mi respuesta.
WHERE
.