Ответ 1
Что вы хотите сделать, это материализовать ваше мнение. Посмотрите http://www.fromdual.com/mysql-materialized-views.
Я очень новичок в представлениях, поэтому, пожалуйста, простите меня, если это глупый вопрос, но у меня есть представление, которое действительно полезно для оптимизации довольно громоздкого запроса и позволяет мне выбирать против небольшого подмножества столбцов в Однако, я надеялся, что представление действительно будет храниться где-нибудь, чтобы выбор против него не занимал много времени.
Я могу ошибаться, но я получаю смысл (со скоростью, с которой выполняется create view
и с продолжительности моих запросов против моего представления), что представление фактически выполняется как запрос перед внешним запросом, каждый время, которое я выбираю против него.
Я действительно надеюсь, что я упустил какой-то механизм, когда я запускаю CREATE VIEW, он может выполнить тяжелую работу с запросом на просмотр *, чтобы мой последующий выбор против этого статического представления был бы очень быстрым.
Кстати, я полностью понимаю, что, очевидно, этот VIEW был бы моментальным снимком данных, которые существовали во время создания VIEW, и не отражал бы никакой новой информации, которая была вставлена /обновлена после создания VIEW. Это действительно ТОЧНО, что мне нужно.
ТИА
Что вы хотите сделать, это материализовать ваше мнение. Посмотрите http://www.fromdual.com/mysql-materialized-views.
То, о чем вы говорите, это материализованные представления, функция (по крайней мере) DB2, но не MySQL, насколько мне известно.
Есть способы имитировать их, создавая/заполняя таблицу периодически или по требованию, но истинное материализованное представление знает, когда базовые данные изменились, и только пересчитывает, если требуется.
Если данные не будут меняться после создания представления (как вы указываете в комментарии), просто создайте новую таблицу для хранения подмножества данных и запроса. Люди всегда жалуются на медленную скорость, но редко на требования к хранению данных: -)
Поскольку представление в основном является выражением SELECT
, вы можете использовать кеш запросов для повышения производительности.
Но сначала вы должны проверить:
EXPLAIN
)