Ответ 1
Нет, представление представляет собой просто сохраненный текстовый запрос. Вы можете применить к нему WHERE
и ORDER
, план выполнения будет рассчитан с учетом этих положений.
У меня сложный запрос с использованием многих объединений (фактически 8). Я думал об упрощении его взгляда. После небольшого исследования я вижу преимущества в простоте и безопасности. Но я не видел никаких упоминаний о скорости.
Как работают представления, как подготовленные операторы, где запрос предварительно скомпилирован? Есть ли заметное увеличение производительности при использовании представлений?
Нет, представление представляет собой просто сохраненный текстовый запрос. Вы можете применить к нему WHERE
и ORDER
, план выполнения будет рассчитан с учетом этих положений.
Иногда это может помочь, но это не серебряная пуля. Я видел представление справки, но я также видел, что это больно. Представление может заставить материализоваться, что иногда может привести к лучшему пути доступа, если MySQL не выбрал для вас хороший.
Просмотр в основном сохраненного подзапроса. По существу нет разницы между:
SELECT *
FROM someview
и
SELECT *
FROM (
SELECT somestuff
FROM underlying table
);
кроме представления немного более портативного, так как вам не нужно выписывать базовый запрос каждый раз, когда вы хотите работать с любыми возвращаемыми данными.