Plugin zum Umschreiben von Abfragen Ab MySQL 5.7.6 unterstützt MySQL Server Plug-Ins zum Umschreiben von Abfragen, die vom Server empfangene Anweisungen prüfen und ggf. ändern können, bevor der Server sie ausführt. Nachfolgend finden Sie die offizielle Dokumenteinführung: Das Pre-Parse-Rewrite-Plugin verfügt über die folgenden Funktionen: 1. Dieses Plugin ermöglicht das Umschreiben von SQL-Anweisungen, die beim Server ankommen, bevor sie vom Server verarbeitet werden. 2. Das Plugin empfängt eine Anweisungszeichenfolge und gibt möglicherweise eine andere Zeichenfolge zurück. Ein Plugin zum Umschreiben von Post-Parsing-Abfragen weist die folgenden Merkmale auf: 1. Das Plugin unterstützt das Umschreiben von Anweisungen basierend auf einem Analysebaum. 2. Der Server analysiert jede Anweisung und übergibt ihren Analysebaum an das Plug-In, das den Baum durchlaufen kann. Das Plug-In kann den ursprünglichen Baum zur weiteren Verarbeitung an den Server zurückgeben oder einen anderen Baum erstellen und diesen zurückgeben. Im Allgemeinen unterstützt das Plug-In zwei Umschreibmethoden: Eine besteht darin, die SQL-Zeichenfolge vor der Syntaxanalyse direkt zu ändern, und die andere besteht darin, sie nach der Syntaxanalyse durch Manipulation des Syntaxanalysebaums umzuschreiben. Diese Funktion ist sehr nützlich. Wenn beispielsweise eine SQL-Anweisung falsch hochgeladen wurde, aber die gesamte Datenbank nicht abgefragt werden kann, weil der Index nicht gefunden werden kann, oder wenn Sie eine von einem Drittanbieter kompilierte Software verwenden, die SQL-Anweisung jedoch möglicherweise falsch ausgeführt wird und Sie die Anwendung nicht direkt ändern können. Diese Funktion ist sehr nützlich und Sie können auch Plug-Ins schreiben, die den Benutzeranforderungen entsprechen. Installieren oder Deinstallieren Der einfachste Installationsvorgang ist wie folgt: shell> mysql -u root -p < install_rewriter.sql Passwort eingeben: (hier das Root-Passwort eingeben) Es ist zu erkennen, dass der Datenbank eine neue Bibliothek query_rewrite hinzugefügt wurde. Überprüfen Sie die Datenbank: Überprüfen Sie, ob das Plugin aktuell installiert ist: Praktische Bedienung Beispielsweise erzwingt die folgende Anweisung die Verwendung einer Primärschlüsselabfrage: SELECT DBA_no, Name aus DBA_inf, wobei DBA_no = ? Schreiben Sie es wie folgt um: SELECT DBA_no, Name aus DBA_inf, erzwinge Index (primär), wobei DBA_no =? Um Regeln für das Rewriter-Plugin hinzuzufügen, sind zwei Schritte erforderlich: 1. Fügen Sie der Tabelle „rewrite_rules“ entsprechende Regeln hinzu. 2. Rufen Sie die gespeicherte Prozedur flush_rewrite_rules() auf, um die Regeln in der Tabelle in das Plug-In zu laden. Das folgende Beispiel erstellt eine einfache Regel zum Abgleichen von Anweisungen, die einen einzelnen Literalwert auswählen, und führt die folgenden Aktionen aus: in query_rewrite.rewrite_rules(pattern, replacement, pattern_database) Werte einfügen („SELECT DBA_no, name from DBA_inf where DBA_no = ?“, „SELECT DBA_no, name from DBA_inf force index(primary) where DBA_no = ?“, „DBAs“); Abfrage der soeben eingefügten Regeln: Der Inhalt jeder Spalte der Ausgaberegel ist wie folgt:
Plugin-Prozess zum Umschreiben von Rewriter-Abfragen Das Hinzufügen einer Regel zur Tabelle „rewrite_rules“ reicht nicht aus, damit das Rewriter-Plugin diese Regel verwenden kann. Um den Tabelleninhalt in den Plugin-Speichercache zu laden, muss außerdem flush_rewrite_rules() aufgerufen werden: Der Rewriter-Plugin-Vorgang verwendet eine gespeicherte Prozedur, um die Regeltabelle in seinen Speichercache zu laden. Im Normalbetrieb ruft der Benutzer einfach flush_rewrite_rules() auf, um den Inhalt der rewrite_rules-Tabelle in den Rewriter-Speichercache zu laden. Nach dem Laden der Tabelle wird auch der Abfragecache geleert. Wenn die Regeltabelle geändert wird, muss diese Prozedur erneut aufgerufen werden, damit das Plugin seinen Cache mit dem neuen Tabelleninhalt aktualisiert: Verwenden Sie das im Rewrite-Plugin definierte Anweisungsmuster, um die entsprechenden Datensätze abzufragen: SELECT DBA_no, Name aus DBA_inf, wobei DBA_no = 8; Durch die Verwendung der EXPLAIN-Anweisung hat das aktuelle SQL den Index verwendet Informationen zum Neuschreiben des Plug-In-Vorgangs Das Rewriter-Plugin stellt über mehrere Statusvariablen Informationen über seinen Betrieb bereit: Hinweise zu diesen Variablen:
Wenn beim Laden der Regeltabelle durch Aufrufen der gespeicherten Prozedur flush_rewrite_rules() ein Fehler in einigen Regeln auftritt, generiert die CALL-Anweisung einen Fehler und das Plug-In setzt die Statusvariable Rewriter_reload_error auf ON: Suchen Sie in diesem Fall in der Tabelle „rewrite_rules“ nach Zeilen, die Nachrichtenspaltenwerte ungleich NULL enthalten, um das Problem zu ermitteln. Das Rewriter-Plugin verwendet den Zeichensatz Wenn die rewrite_rules-Tabelle in das Rewriter-Plugin geladen wird, verwendet das Plugin den aktuellen globalen Wert der Systemvariablen character_set_client, um Anweisungen zu interpretieren. Wenn character_set_client den globalen Wert nachträglich ändert, muss die Regeltabelle neu geladen werden. Der character_set_client-Wert der Clientsitzung muss mit dem globalen Wert beim Laden der Regeltabelle übereinstimmen, da sonst die Regelübereinstimmung auf diesen Client nicht angewendet wird. Oben finden Sie detaillierte Informationen zur Verwendung des MySQL Query Rewrite Plug-Ins. Weitere Informationen zum MySQL Query Rewrite Plug-In finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
>>: Installationstutorial für Docker unter Linux
Mobile Mobile Seiten müssen nur mit Chrome und Sa...
(1) Einleitung: clipboard.js ist ein leichtes Jav...
1. Komplettlösung 1. Problemanalyse und -lokalisi...
Lassen Sie uns zunächst einige gängige Anwendungs...
In diesem Artikelbeispiel wird der spezifische Co...
1. Grundlegende Verwendung von Firewalld Start-up...
Docker ist in CE und EE unterteilt. Die CE-Versio...
Dieser Artikel beschreibt, wie man eine MySQL Mas...
js realisiert den Spezialeffekt des Klickens und ...
Inhaltsverzeichnis Vorwort Was sind erstellbare S...
In diesem Artikelbeispiel wird der spezifische Ja...
1. Entwicklungsumgebung vue+vant 2. Computersyste...
Inhaltsverzeichnis Virtueller DOM Was ist virtuel...
1. Ereignissprudeln : Wenn im Prozess der Ereigni...
Hinweis: Andere Maschinen (IP) können ohne Autori...