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...
А монгу вообще не надо юзать, если у вас пошла серьезная нормализация
Обсуждают сегодня