Лучший способ создать материализованное представление в MySQL

19

Я использую MySQL 5.6. Я не могу создать материализованное представление, как в Oracle. Я видел одно или два решения, как Flexview.

Кто-нибудь может сказать мне лучший способ создать материализованное представление в MySQL (автоматическое обновление как в Oracle) с минимальной сложностью?

Бхупендра Пандей
источник

Ответы:

11

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

Flexviews был рекомендован в DBA StackExchange до

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

АЛЬТЕРНАТИВА № 1

Возможно, вы захотите настроить сводные таблицы. Вам нужно будет проиндексировать ваши базовые таблицы, чтобы поддерживать агрегирование, прежде чем создавать сводные таблицы.

АЛЬТЕРНАТИВА № 2

Вот старый пост от http://www.materialized.info/, в котором есть более практичная стратегия, которая выглядит интригующей. Это предполагает использование триггеров. Похоже, это может быть весело ...

АЛЬТЕРНАТИВА № 3

Если ваши базовые таблицы не такие большие, и вы можете выполнять запросы к целым таблицам один раз в неделю, попробуйте User Commentsраздел « Документация MySQL» по CREATE VIEW . Ищите слово materializedна этой странице.

RolandoMySQLDBA
источник
В последней версии MySQL вы можете создать materliazed таблицу dba.stackexchange.com/a/226707/50702
Revious
1

Я нашел 2 возможных решения для материализованных представлений в MySQL:

  1. Создайте таблицу агрегации со всеми необходимыми данными, а затем создайте триггеры в таблицах, откуда поступают данные.

  2. Создайте планировщик, который периодически собирает данные в таблицу

Подробнее о том, как реализовать 2 варианта, можно узнать из моего блога здесь: материализованное представление MySQL

coding-dude.com
источник
0

Если ваши базовые данные в основном стабильны или вы можете допустить разницу между представлением и данными, подумайте о том, чтобы использовать простые инструменты rolap , которые я написал для решения этого варианта использования. Это позволяет вам записывать в отдельные файлы сложные запросы SQL, которые генерируют таблицы. Отношения между запросами создаются автоматически, и запросы выполняются в соответствующем порядке с помощью инструмента make Unix . Чтобы обновить сгенерированные таблицы, вам нужно запустить make clean all. Этот инструмент в основном полезен для постепенного создания сложных запросов, которые эффективно выполняются на основе предварительно рассчитанных результатов их входных данных.

Диомидис Спинеллис
источник
Вы, вероятно, должны сделать раскрытие (что вы автор инструмента) более заметным.
mustaccio
Хорошая точка зрения! Я отредактировал ответ, чтобы уточнить это.
Диомидис Спинеллис