Окт 26

Для тех, кто не знает, что это такое – ссылка
Вкратце: созздаёт, фактически, «временную таблицу» (более правильно сказать – виртуальную таблицу или результат выборки в виде таблицы), в которой могут храниться данные из других таблиц и результаты применения аггрегирующих функций к ним. При этом если хранятся только данные, то эта таблица обновляется при обновлении входящих в её состав таблиц.
Но оказывается, что, как и многие нововведения (хранимые процедуры должны перекомпилироваться заново при начале сессии, если использовать подзапросы – очень много запросов получается), это тоже имеет очень большие проблемы с производительностью (ссылка).
Вкратце:
неудобно искать проблемы в запросах (вроде как обращаешься к одной таблице, а на деле – нет), создаётся временная таблица без индексов. Также есть проблемы у mySQL при оптимизации запросов при обращении к VIEW.

Теги:

2 Responses to “Использование VIEW в mySQL 5.0. Проблемы с производительностью.”

  1. VIEW не создает таблицы – фактически это просто именованный SELECT, по сути аналогичный хранимой процедуре.
    Соответственно, он не имеет ничего из свойств обычной таблицы – это просто СРЕЗ данных.
    Срезы, обладающие всеми атрибутами таблицы, называются «материализованными представлениями», кажется есть в Oracl.

  2. bullgare:

    Ну это я так по простому объяснил «A view is a named, derived table whose definition is a persistent part of the database.».
    Щас возьму в кавычки).
    Спасибо за замечание.
    Тем не менее, проблемы остаются(

Leave a Reply

*
preload preload preload