Это вопрос производительности.msql query или mysql view
Допустит, у меня есть следующая MySQL данные (более 1000 записей той же структура)
именистола: часы
Employee | Hours | Scope | Project
John 4 labour projId_A
John 3 Travel projId_A
Mark 4 labour projId_A
Mark 2 Travel projId_A
Что лучше производительность, если я один запрос с резюме труда и поездки, чтобы получить эту
имя таблицы: проекты (я бы оставил присоединиться проекты и часы)
Project | labourHrs | travelHrs
projId_A 8 5
или нам это лучше
- создать представление, которое показывает только labourHrs
- создать представление, которое показывает только travelHrs
Затем создать 2 стыки проекты -> labourH и проекты -> travelH
получить:
Project | labourHrs | travelHrs
projId_A 8 5
Я думаю, что я спрашиваю, лучше ли делать сумму внутри запроса проекта или внутри labour_view & travel_view '
любые мысли?
По моему опыту, ПРОСМОТРЫ никогда не помогают производительности (кроме, возможно, уменьшения вероятности того, что другие делают более бедные версии одного и того же запроса); они также стремятся сделать отладку намного сложнее, поскольку MySQL не просто «присоединяется» к результатам, как если бы они были таблицей, она пытается интегрировать запросы позади них с запросом, в котором используется представление, и не всегда ожидаемыми способами. (Простой пример: запрос SELECT * FROM aTable в виде вида, называемого «view1», сначала не будет выбирать все из 'aTable', если вы выполните SELECT * FROM view1 WHERE id = 1', он будет запускать базовый запрос с помощью условие.) – Uueerdo