Каждый фрагмент литературы, который я нашел в этой теме, говорит о том, что преимущество использования представлений заключается в том, насколько чище он делает код. То, что я хотел бы знать, - это если я запускаю несколько выборок один за другим, будет ли латентность (Apache до MySQL до Apache несколько раз) значительно выше, чем при использовании сложного представления. У меня есть сценарий, где я могу взять один из двух подходов:
Что поможет мне быстрее доставлять страницы моим пользователям?
Любая помощь, основанная на фактическом наблюдении или проверенной документации, будет приветствоваться.
Благодарю.
SR
Это зависит.
С одной стороны, 90% простого запроса находятся в служебных данных (связь, разбор и т.д.). Таким образом, меньшее количество обращений к серверу лучше.
С другой стороны, запрос (с или без VIEWs
), который является слишком сложным, может делать вещи менее эффективно, чем вы могли бы сделать, разбив их на простые шаги.
Я говорю, что VIEWs
- это синтаксический сахар, а не преимущество в производительности. (@nacho говорит, что это лучше.)
Я создал много сложных страниц, в которых, скажем, 40 запросов. Производительность достойная. Я нахожу любые "медленные" запросы (для этого удобен SlowLog), а затем оптимизируйте их.
Я также считаю, что лучше создать страницу с дополнительной информацией об этом, вместо того, чтобы заставить пользователя щелкнуть что-нибудь, чтобы открыть другую страницу. То есть удвоение количества SELECTs
(стоимость нескольких миллисекунд) может привести к лучшему пользовательскому интерфейсу.
Представления не изменяют производительность вашей базы данных. Производительность такая же, как и в ее выборе. Представления не используются для увеличения производительности или доставки страниц быстрее, они используются для двух вещей: