Tengo que eliminar aproximadamente 10K filas de una tabla que tiene más de 100 millones de filas según algunos criterios. Cuando ejecuto la consulta, demora unos 5 minutos. Ejecuté un plan de explicación (la consulta delete
convertida a select *
ya que MySQL no admite explain delete
) y encontré que MySQL usa el índice incorrecto.MySQL, eliminar e indizar índice
Mi pregunta es: ¿hay alguna manera de decirle a MySQL qué índice usar durante la eliminación? Si no, ¿qué puedo hacer? Seleccionar a la tabla temporal y luego eliminar de la tabla temporal?
Asegúrese de tener una clave principal y de que la columna nombrada en la cláusula WHERE de su eliminación esté indexada. –