Материализованные представления с MySQL

Эмулированные материализованные представления с MySQL имеют хорошую производительность? Я изучаю, как работать с этой ссылкой

Благодарность


Исправление: "Материализированные представления" заменены на "Эмуляции материализованных представлений".


person adelarsq    schedule 21.10.2010    source источник


Ответы (3)


MySQL не имеет материализованных представлений — ссылка просто создает таблицу и заполняет ее данными, чтобы таблицу можно было проиндексировать. Это означает, что производительность соответствует обычной таблице, но у вас также есть накладные расходы на очистку и повторное заполнение таблицы (включая индексы).

Я не видел, какой движок использовала таблица, но ПАМЯТЬ, вероятно, будет лучшим выбором.

person OMG Ponies    schedule 21.10.2010
comment
Я поправлю свой вопрос. Очень интересная ссылка. Спасибо за комментарий. - person adelarsq; 22.10.2010

Материализованное представление — это просто причудливое название для обычной таблицы с данными из какого-то тяжелого запроса.

Таким образом, несмотря на то, что его создание так же сложно, как и сам тяжелый запрос, выполнение запроса выполняется очень быстро.

Большой вопрос здесь заключается в том, как вы хотите обновить представление.

  • Вы можете сделать обычное полное обновление. Это просто сделать, но тяжело во время этого обновления, а между обновлениями данные устаревают.
  • Вы можете использовать триггеры для автоматического обновления данных при вставке/удалении/обновлении. Это делает вставки/удаления/обновления для других ваших таблиц немного более тяжелыми, но это не устареет.
person Wolph    schedule 21.10.2010
comment
Я попробую использовать триггеры. Спасибо - person adelarsq; 22.10.2010

Flexviews (http://flexvie.ws) — это проект с открытым исходным кодом, основанный на PHP/MySQL. Flexviews добавляет в MySQL постепенно обновляемые материализованные представления (например, материализованные представления в Oracle), используя PHP и хранимые процедуры.

Он включает в себя FlexCDC, утилиту сбора данных об изменениях на основе PHP, которая считывает двоичные журналы, и хранимые процедуры Flexviews MySQL, которые используются для определения и поддержки представлений.

Flexviews поддерживает соединения (только внутреннее соединение) и агрегирование, поэтому его можно использовать для создания сводных таблиц. Кроме того, вы можете использовать Flexviews в сочетании с конструктором агрегации Mondrian (сервер ROLAP) для создания сводных таблиц, которые инструмент ROLAP может использовать автоматически.

person Justin Swanhart    schedule 27.03.2011