Unterstützt MySQL materialisierte Ansichten??

Unterstützt MySQL materialisierte Ansichten??
In der modernen Welt ist Geschwindigkeit der Schlüssel. Beim Erstellen von Anwendungen und Software mit einer Datenbank benötigen wir einen schnellen Zugriff auf Daten in minimalsten Zeitpunkten. Dafür implementieren wir verschiedene Datenbankmaßnahmen, einschließlich materialisierter Ansichten.

Im Gegensatz zu Postgresql oder Oracle Database unterstützt MySQL jedoch keine materialisierten Ansichten, was ein großer Nachteil sein kann. Dies ist jedoch kein Grund, die Verwendung von MySQL zu beenden, da es sich um eine großartige Datenbank für wichtige Anwendungen handelt.

In diesem Tutorial werden wir schnell diskutieren, welche materialisierten Ansichten sind, wie sie funktionieren, in Fällen, in denen sie anwendbar sind und wie materialisierte Ansichten in MySQL implementiert werden können.

NOTIZ: Ich nehme an, Sie haben grundlegendes MySQL -Wissen.

Was sind materialisierte Ansichten?

Materialisierte Ansichten sind vorbereitete Ergebnisse einer in einer Tabelle gespeicherten Abfrage. Im Gegensatz zu einer Standard -MySQL -Ansicht ist eine materialisierte Ansicht kein Fenster in eine Datenbanktabelle. Es speichert tatsächliche Daten.

Diese Objekttypen sind sehr nützlich, wenn Sie sofortigen Zugriff auf Daten benötigen, und eine reguläre MySQL -Abfrage würde Zeit für die Verarbeitung brauchen. Ein gutes Beispiel sind Fälle mit einem großen Datensatz, für das viele Berechnungen erforderlich sind.

Da materialisierte Ansichten reale Daten enthalten, müssen sie erfrischt werden, um die von derselben Abfrage aktualisierten Werte widerzuspiegeln. Das Aktualisierungsintervall für eine materialisierte Ansicht hängt vom gespeicherten Inhalt ab und davon, wie schnell sich die Daten ändern.

Unterstützt MySQL materialisierte Ansichten??

Die einfache Antwort ist nein. In MySQL gibt es keinen einzigen Befehl, den Sie ausführen können, um eine materialisierte Ansicht zu erhalten. Sie können beispielsweise den Befehl unten nicht eingeben und erhalten, was Sie brauchen:

MySQL> Erstellen Sie materialisierte Ansicht…

Glücklicherweise können wir mit ein paar Tricks und Tools, die von MySQL nativ bereitgestellt werden.

So erstellen Sie eine materialisierte Ansicht in MySQL

In diesem Abschnitt werde ich Ihnen eine Möglichkeit zeigen, eine materialisierte Ansicht in MySQL zu implementieren.

NOTIZ: Obwohl diese Workshop -Methode eine Möglichkeit veranschaulicht, eine materialisierte Ansicht in MySQL zu erstellen, ist sie in allen Datenbanken nicht perfekt.

Angenommen, wir haben ein Schema namens (MV), das eine Tabelle namens Info hat, mit der die Verkaufsinformationen wie in den folgenden Abfragen gezeigt werden:

Schema MV erstellen;
Verwenden Sie MV;
Erstellen Sie Tabelleninformationen (
ID int Primärschlüssel Auto_increment,
SALKER_ID INT,
_Datum datum,
Betrag int
);
Einfügen in Info (Seller_ID, _date, Menge) Werte (101, "2021-01-05", 200), (111, "2021-01-05", 600), (121, "2021-02-05", 1000);

Unter Verwendung einer Beispieltabelle können wir eine materialisierte Tabelle erstellen, in der Informationen zu einer Abfrage gespeichert sind, wie z. B. die unten gezeigte:

Wählen Sie Seller_id, _date, sum < CURRENT_DATE ORDER BY seller_id;

Die Abfrage erscheinen möglicherweise nicht effektiv, wenn man die Größe der Datenbank und die in der obigen Tabelle gespeicherten Informationen berücksichtigt, da sie sehr schnell verarbeitet wird. In einer großen Datenbank mit vielen Informationen kann jedoch eine Abfrage wie die oben genannte Zeit in Anspruch nehmen, um zu verarbeiten.

In einem solchen Fall können wir eine materialisierte Ansicht erstellen, um die Informationen aus der obigen Abfrage zu speichern, sodass wir schneller auf die Informationen zugreifen können.

Um eine materialisierte Ansicht zu erstellen, können wir eine Tabelle mit den Ergebnissen der obigen Abfrage erstellen:

Tabelle materialized_view erstellen (
Wählen Sie Seller_id, _date, sum < CURRENT_DATE ORDER BY seller_id
);

So aktualisieren Sie eine materialisierte Ansicht

Wie Sie jetzt wissen, enthält eine materialisierte Ansicht echte Daten. Es ist kein Schnappschuss eines Tisches.

Das heißt, wenn die Haupttabelle aktualisiert wird, müssen die Daten in der materialisierten Ansichtstabelle erfrischt werden.

Um eine materialisierte Ansicht zu aktualisieren, können wir die nachstehend gezeigte Prozedur verwenden:

Abgrenzer $$
Prozedur erstellen refresh_materialv (
Out Dev int
)
START
TABELLE TABLE MOSCHISISISCHE_VIEW;
In materialized_view einfügen
Wählen Sie Seller_id, _date, sum (Betrag * 12 * 8) als Total_Amount
Aus Info
Wobei _date * aus materialized_view auswählen;
+-----------+------------+--------------+
| SALKER_ID | _date | Total_amount |
+-----------+------------+--------------+
| 101 | 2021-01-05 | 172800 |
+-----------+------------+--------------+

Aktualisieren Sie als Nächstes die in der Haupttabelle gespeicherten Daten wie:

Einfügen in Info (Seller_ID, _date, Menge) Werte (101, "2021-01-05", 200), (111, "2021-01-05", 600), (121, "2021-02-05", 1000), ("131", "2021-01-05", 6000), ("141", "2021-01-05", 1400);

Versuchen Sie schließlich, die Daten der materialized_view -Tabelle mithilfe der oben erstellten Prozedur zu aktualisieren.

Rufen Sie refresh_materialv (@dev) an;
Wählen Sie * aus materialized_view;

Dies zeigt die Werte in der materialisierten Ansichtstabelle aktualisiert an.

Abschluss

In diesem Tutorial wurde erörtert, was materialisierte Ansichten sind, wie sie funktionieren und wie Sie eine implementieren können, wenn Sie MySQL verwenden. Betrachten.