Joan M Ответов: 1

Лучше ли создать представление или выполнить полное предложение select с точки зрения скорости


Я работаю над резюме (своего рода простой отчет о данных), чтобы помочь мне объяснить моим клиентам, сколько времени я провел в различных частях проектов, в которых я работаю.

Мне нужно уметь фильтровать существующие данные, чтобы показать количество часов каждого вида, в которых я работал каждую неделю/месяц/год, пока шел проект...

Я подумал о большом (для меня, что я не привык к нему +/- 80 строк) SQL-предложении, которое подготавливает все данные, но потом у меня возникли проблемы с фильтрацией его по желанию, поэтому я подумал о создании представления с использованием этого SQL-предложения, а затем отфильтровать его впоследствии.

А потом возник другой вопрос... быстрее ли иметь готовые представления или делать запрос каждый раз?

Что я уже пробовал:

Ничего, просто спрашиваю кое-какую информацию...

1 Ответов

Рейтинг:
4

Afzaal Ahmad Zeeshan

Краткое описание: представление может кэшировать результаты, если вы применяете индекс для будущих запросов, что приводит к повышению производительности для последующих запросов. В противном случае представление-это просто псевдоним для обычного SQL-запроса.

Ознакомьтесь с этими постами, чтобы понять, почему представление работает быстрее, чем простой SQL-запрос:
sql - это представление быстрее, чем простой запрос? - переполнение стека[^]
база данных - производительность представления по сравнению с инструкцией SQL - переполнение стека[^]
индексирование - как заставить MySQL использовать индекс для запроса представления? - переполнение стека[^] (обязательно прочтите это!)

Все это сводится к тому, индексируется ли представление, которое вы создаете/используете/выполняете, или нет. Если вы не используете никаких индексов и выполняете простой старый запрос, то представление, скорее всего, будет только псевдонимом для SQL-запроса. Часть производительности приходит, когда вы обрабатываете индексы в представлении и позволяете MySQL повторно использовать результаты предыдущих запросов.


Joan M

Спасибо за этот ответ, это более или менее то, что я себе представлял, но приятно видеть, что он подтвердился.