Estoy usando el framework Codeigniter para programar y una base de datos mysql.
Hago una consulta de eliminación de datos con subconsulta y se tarda tantísimo que el final me da error timeout. Os copio un poco el código a ver si podéis darme alguna solución.
Código PHP:
$arraytablas = array( "tabla1", "tabla2", "tabla3", "tabla4", "tabla5", "tabla6");
for($i = 0; $i<count($arraytablas); $i++)
{
$query = "DELETE FROM " .$arraytablas[$i]. " where usuarioID not in (select usuarioID from tabla) and".$arraytablas[$i].".usuarioID != 0;";
$resultado = $this->db->query($query);
if ($resultado)
$elmensaje .= "Se ha ejecutado el mantenimiento de la tabla " .$arraytablas[$i]. " satisfactoriamente...<br/><br/>";
else
$elmensaje .= "No se ha podido realizar el mantenimiento de la tabla " .$arraytablas[$i]. " en estos momentos. Inténtalo de nuevo más tarde.<br/><br/>";
}
return $elmensaje;
Creo que el problema está en el delete porque un select de más de 2000 registros me lo hace rápido.
Alguna idea de esto?
Gracias!!