Tengo un problemilla con una consulta sql y es que es demasiado lenta. No tengo mucha experiencia en el campo y espero que alguien de por aquí pueda darme algún consejo útil.
Es una base de datos de películas y el objetivo de la consulta es hacer una búsqueda general de películas en todas las tablas a partir de un texto que escriba un usuario.
Es decir, que si el usuario escribe 'algo', aparezcan todas las pelis que tengan en el titulo 'algo', pero también todas las pelis que tengan asociadas algún actor que contenga 'algo' y así con todos los datos.
La consulta es esta:
Código:
Ya sé que son muchas cosas para una misma consulta.... pero con pocos datos iba bien, hasta que metí más de 10 películas :(SELECT DISTINCT pelicula.titulo,pelicula.año,pelicula.duracion,pelicula.pais FROM pelicula,es_actor_pelicula,es_director,idioma_pelicula,subtitulos_pelicula,tiene_pelicula,ubicacion_pelicula WHERE (pelicula.titulo REGEXP '.*consulta.*') OR (pelicula.año REGEXP '.*consulta.*') OR (pelicula.pais REGEXP '.*consulta.*') OR (pelicula.notas REGEXP '.*consulta.*') OR (es_actor_pelicula.nombre REGEXP '.*consulta.*' AND pelicula.titulo= es_actor_pelicula.tituloPelicula AND pelicula.año = es_actor_pelicula.añoPelicula) OR (es_director.nombre REGEXP '.*consulta.*' AND pelicula.titulo= es_director.tituloPelicula AND pelicula.año = es_director.añoPelicula) OR (idioma_pelicula.idioma REGEXP '.*consulta.*' AND pelicula.titulo= idioma_pelicula.tituloPelicula AND pelicula.año = idioma_pelicula.añoPelicula) OR (subtitulos_pelicula.subtitulos REGEXP '.*consulta.*' AND pelicula.titulo= subtitulos_pelicula.tituloPelicula AND pelicula.año = subtitulos_pelicula.añoPelicula) OR (tiene_pelicula.productora REGEXP '.*consulta.*' AND pelicula.titulo= tiene_pelicula.tituloPelicula AND pelicula.año = tiene_pelicula.añoPelicula) OR (ubicacion_pelicula.ubicacion REGEXP '.*consulta.*' AND pelicula.titulo= ubicacion_pelicula.tituloPelicula AND pelicula.año = ubicacion_pelicula.añoPelicula)
Espero que alguien pueda echarme una mano para optimizarla, porque hace poco que trabajo con sql.
Muchas gracias!! :D