Beste Möglichkeit, eine materialisierte Ansicht in MySQL zu erstellen


18

Ich benutze MySQL 5.6. Ich kann keine materialisierte Ansicht wie in Oracle erstellen. Ich habe ein oder zwei Lösungen wie Flexview gesehen.

Kann mir jemand am besten sagen, wie man eine materialisierte Ansicht in MySQL (automatische Aktualisierung wie in Oracle) mit minimaler Komplexität erstellt?

Antworten:


11

Materialisierte Ansichten sind in MySQL nicht vorhanden.

In DBA StackExchange wurde Flexviews bereits empfohlen

Da Sie es bereits haben, kann es sein, dass Sie eine gewisse Sorgfalt und Ellenbogenfett benötigen, um es weiter zu verwenden (falls Sie es noch nicht getan haben).

ALTERNATIVE 1

Möglicherweise möchten Sie Übersichtstabellen einrichten. Sie müssen Ihre Basistabellen indizieren, um die Aggregation zu unterstützen, bevor Sie Übersichtstabellen erstellen.

ALTERNATIVE 2

Hier ist ein alter Beitrag von http://www.materialized.info/, der eine bodenständigere Strategie hat, die faszinierend aussieht. Es beinhaltet die Verwendung von Triggern. Sieht so aus, als könnte es Spaß machen ...

ALTERNATIVE 3

Wenn Ihre Basistabellen nicht so groß sind und Sie einmal pro Woche ganze Tabellen abfragen können, lesen Sie den User CommentsAbschnitt der MySQL-Dokumentation zu CREATE VIEW . Suchen Sie materializedauf dieser Seite nach einem Wort .


In der neuesten Version von MySQL können Sie eine materliazierte Tabelle erstellen. Dba.stackexchange.com/a/226707/50702
Revious

1

Ich habe zwei mögliche Lösungen gefunden, um Ansichten in MySQL zu materialisieren:

  1. Erstellen Sie eine Aggregationstabelle mit allen erforderlichen Daten und erstellen Sie dann Trigger für die Tabellen, aus denen die Daten stammen.

  2. Erstellen Sie einen Scheduler, der die Daten in regelmäßigen Abständen zu einer Tabelle zusammenfasst

Weitere Informationen zum Implementieren der beiden Optionen in meinem Blogbeitrag finden Sie hier: materialized view MySQL


0

Wenn Ihre zugrunde liegenden Daten größtenteils stabil sind oder Sie Unterschiede zwischen der Ansicht und den Daten tolerieren können, ziehen Sie die Verwendung der Simple-Rolap- Tools in Betracht , die ich zur Behandlung dieses Anwendungsfalls geschrieben habe. Mit diesen können Sie komplexe SQL-Abfragen, die Tabellen generieren, in separate Dateien schreiben. Die Beziehungen zwischen den Abfragen werden automatisch abgeleitet und die Abfragen werden in der entsprechenden Reihenfolge über das Unix- Tool make ausgeführt . Um die generierten Tabellen zu aktualisieren, müssten Sie ausführen make clean all. Das Tool eignet sich hauptsächlich zum schrittweisen Erstellen komplexer Abfragen, die auf der Grundlage der vorberechneten Ergebnisse ihrer Eingaben effizient ausgeführt werden.


Wahrscheinlich sollten Sie die Offenlegung (dass Sie der Autor des Tools sind) bekannter machen.
Mustaccio

Guter Punkt! Ich habe die Antwort bearbeitet, um dies zu klären.
Diomidis Spinellis
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.