Найкращий спосіб створити матеріалізований вигляд у 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 ви можете створити таблицю, що матерлізована, dba.stackexchange.com/a/226707/50702
Починаючи з

1

Я знайшов 2 можливих рішення щодо матеріалізованих поглядів у MySQL:

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

  2. Створіть планувальник, який періодично агрегує дані в таблицю

Детальніше про те, як реалізувати 2 варіанти в моєму дописі блогу, дивіться тут: матеріалізований перегляд MySQL


0

Якщо ваші базові дані в основному стабільні або ви можете допустити різницю між представленням даних і даними, тоді подумайте про використання інструментів простого перегляду , які я написав для вирішення цього випадку використання. Вони дозволяють записувати в окремі файли складні запити SQL, що генерують таблиці. Взаємозв’язки між запитами виводяться автоматично і запити виконуються у відповідному порядку за допомогою інструменту Unix make . Щоб оновити згенеровані таблиці, вам потрібно буде запустити make clean all. Інструмент в основному корисний для нарощування складних запитів, які ефективно виконують на основі попередньо обчислених результатів їх введення.


Ви, мабуть, повинні зробити розголошення (що ви автор інструменту) більш помітним.
мустаччо

Гарна думка! Я відредагував відповідь, щоб уточнити це.
Діомідіс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.