Представления могут упростить объем текста, необходимый для создания запроса, но наложение слоев друг на друга является плохой практикой .
Эта инкапсуляция также рискует плохо выполнять запросы, потому что представления должны быть выполнены до того, как они смогут соединиться друг с другом - вся эта логика внутри может не соответствовать тому, что вам нужно для конечного результата, поэтому ленивость может легко означать запрос, который не работает так, как должен.
Поскольку представления - это запросы, которые выполняются только при вызове, вы не будете знать о пропущенных ссылках до времени выполнения.
Имейте в виду, что при использовании SELECT *
в представлении база данных захватывает список столбцов при выполнении оператора CREATE VIEW
- если столбцы изменяются, вам необходимо обновить представление, чтобы получить изменения.
Также нет разницы в производительности между представлением и выполнением запроса, на котором основано представление. За исключением материализованных представлений (которые MySQL не поддерживает), представления являются просто подготовленным утверждением. Если достаточно просто, предикаты WHERE могут быть вставлены из FROM view WHERE ....
во внутренний запрос, но это означает, что функции не используются и ненадежны.
Заключение
Хорошо, но будьте осторожны.