movie.name AS movie_name,
                  
                  
                         movie.slug AS movie_slug,
                  
                  
                         movie.release_date AS movie_release_date,
                  
                  
                         movie.duration AS movie_duration,
                  
                  
                         movie.description AS movie_description
                  
                  
                  FROM movie
                  
                  
                  JOIN movies_genres AS movies_genres_1 ON movie.movie_id = movies_genres_1.movie_id
                  
                  
                  JOIN genres ON genres.genres_id = movies_genres_1.genres_id
                  
                  
                  JOIN movies_languages AS movies_languages_1 ON movie.movie_id = movies_languages_1.movie_id
                  
                  
                  JOIN LANGUAGE ON language.language_id = movies_languages_1.language_id
                  
                  
                  JOIN movies_year AS movies_year_1 ON movie.movie_id = movies_year_1.movie_id
                  
                  
                  JOIN YEAR ON year.year_id = movies_year_1.year_id
                  
                  
                  JOIN movies_actors AS movies_actors_1 ON movie.movie_id = movies_actors_1.movie_id
                  
                  
                  JOIN person ON person.person_id = movies_actors_1.person_id
                  
                  
                  JOIN movies_directors AS movies_directors_1 ON movie.movie_id = movies_directors_1.movie_id
                  
                  
                  JOIN person ON person.person_id = movies_directors_1.person_id
                  
                  
                  WHERE lower(person.name) LIKE lower(?)
                  
                  
                
слишком много джойнов, все разорвет
Что разорвёт?
планировщик перестанет оптимизировать запросы, будут сексканы везде
И оптимизируется не запрос сам, а план запроса
и как он будет делать запрос без плана?
Он из текста запроса строит план получения данных и по нему идёт выбирать строки нужные, что ты подразумеваешь под запросом?
я не сильно вник, но зачем тут джойн с movies_actors, movies_year, year, movies_languages если они никак не используются?
ну он и построит план с сек сканами, а оптимизатор скажет - идинахрен, не буду я тут с таким колчиеством джойнов все переставлять
Может, ему индексов докинуть ?
ещё раз: при таком числе джойнов планировщик просто говорит "идите в жопу" и даже не пытается разбиратсья какие в таблицах интедексы бывают
А ему при таком подходе вообще нужна ли RDB? Пусть пользует себе Mongo...
А монгу вообще не надо юзать, если у вас пошла серьезная нормализация
Обсуждают сегодня