Лучший способ создать материализованное представление в 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на этой странице.


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

1

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

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

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

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


0

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


Вы, вероятно, должны сделать раскрытие (что вы автор инструмента) более заметным.
— mustaccio

Хорошая точка зрения! Я отредактировал ответ, чтобы уточнить это.
— Диомидис Спинеллис
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.