Die Bedeutung der MySQL PREPARE-Vorverarbeitungstechnologie besteht darin, dass sie den Druck auf den Server verringert. Das heißt, in den meisten Fällen kann es vorkommen, dass eine bestimmte SQL-Anweisung für eine bestimmte Anforderung mehrfach aufgerufen und ausgeführt wird oder nur einzelne Werte bei jeder Ausführung unterschiedlich sind.
1. VorverarbeitungMySQL bietet Unterstützung für serverseitig vorbereitete Anweisungen, die als Vorverarbeitung bezeichnet wird. Diese Unterstützung nutzt ein effizientes Client/Server-Binärprotokoll. Die Verwendung vorbereiteter Anweisungen mit Platzhaltern für Parameterwerte bietet die folgenden Vorteile:
Vorverarbeitungsschnittstelle 1. Vorbereitete Anweisungen in Anwendungen Sie können serverseitig vorbereitete Anweisungen über Client-Programmierschnittstellen verwenden, einschließlich der MySQL C API-Clientbibliothek für C-Programme, MySQL Connector/J für Java-Programme und MySQL. NET-Technologieprogramm MySQL Connector/NET. Beispielsweise stellt die C-API eine Reihe von Funktionsaufrufen bereit, die ihre vorbereitete Anweisungs-API bilden. 2. Vorbereitete Anweisungen in SQL-Skripten Es gibt auch eine alternative SQL-Schnittstelle für vorbereitete Anweisungen. Es ist jedoch keine Programmierung erforderlich; es ist direkt auf SQL-Ebene verfügbar und Sie können es in jedem Programm verwenden, das SQL-Anweisungen zur Ausführung an den Server senden kann, z. B. das MySQL-Clientprogramm. 2. VorbehandlungsanwendungsmethodeDie SQL-Syntax für vorbereitete Anweisungen basiert auf drei SQL-Anweisungen:
A. Beispiel:Vorbereitete Anweisungen können nicht sitzungsübergreifend verwendet werden: mysql>CREATE TABLE `t1` ( `id` int NICHT NULL, NAME varchar(20), SCHLÜSSEL `idx_id` (`id`) ) ENGINE=InnoDB; mysql>INSERT INTO t1(id,name) Werte(1,'A'),(2,'B'),(3,'C'),(4,'D'),(5,'E'),(6,'F'); #Setzen Sie die vorbereitete Anweisung mysql>PREPARE stmt1 FROM 'SELECT * FROM t1 WHERE a=? '; #Setzen Sie die Übertragungsvariable mysql>SET @a = 8; #Anweisung ausführenmysql>EXECUTE stmt1 USING @a; # Geben Sie die vorbereitete Anweisung frei mysql>DEALLOCATE PREPAR stmt1; B. Vorverarbeitung zur Nachverfolgung von Änderungen in AusführungsplänenDurch Beobachtung der Änderungen des Statusindikators Select_scan (Anzahl der ausgeführten Suchanfragen für die gesamte Tabelle) können Sie feststellen, ob das Datenvolumen beeinträchtigt ist. Der Ausführungsplan der vorverarbeiteten SQL-Anweisung ändert sich, wenn sich die Datenmenge ändert. C. Die gespeicherte Prozedur enthält VorverarbeitungVorbereitete Anweisungen: Wenn Sie eine vorbereitete Anweisung innerhalb einer gespeicherten Routine erstellen, wird sie nicht freigegeben, wenn die gespeicherte Routine endet. TRENNUNGSZEICHEN // VERFAHREN LÖSCHEN, WENN proc_prepared EXISTIERT; PROZEDUR ERSTELLEN proc_prepared() BEGINNEN DEKLARESIEREN eines INT; Erklären Sie, dass ich INT; VORBEREITEN von stmt1 AUS 'SELECT * AUS t1 WHERE id>? '; Setzen Sie @a = 5; Führen Sie stmt1 unter Verwendung von @a aus; ENDE // TRENNUNGSZEICHEN ; rufen Sie proc_prepared() auf; Nach der gespeicherten Prozedur wird die vorbereitete Anweisung separat aufgerufen und der Ergebnisset zurückgegeben: Dies zeigt an, dass die Vorverarbeitung SET @a = 5; nicht zerstört hat. Führen Sie stmt1 unter Verwendung von @a aus; +----+------+ | Ich würde | NAME | +----+------+ | 6 | F | . . . Nach der gespeicherten Prozedur wird die vorbereitete Anweisung separat aufgerufen und der Ergebnissatz zurückgegeben: Dies bedeutet, dass die Vorverarbeitung nicht zerstört wird D. Anzeigen der Kosten für das Parsen von Anweisungen über das Profil Durch die Profilierung der Ausführungszeit verschiedener Anweisungen liegt die zum Parsen der Anweisungen benötigte Zeit im Bereich von 0,01 Sekunden. Kann ignoriert werden. 3. ZusammenfassungDie anfängliche Rolle der Vorkompilierung:
Einschränkungen und praktische Auswirkungen:
Gemessen an seinen Einschränkungen und tatsächlichen Auswirkungen funktioniert es derzeit nicht wie es sollte. Nicht für den Einsatz in einer Schallfeldumgebung geeignet. Dies ist das Ende dieses Artikels über die spezifische Verwendung der MySQL-Vorverarbeitung. Weitere relevante Inhalte zur MySQL-Vorverarbeitung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Durch das flexible Layout können Unterelemente ihre eigene Höhe beibehalten
>>: Einige Möglichkeiten zur Lösung des Problems des in Jenkins integrierten Docker-Plugins
Ich habe im Internet unzählige my.cnf-Konfigurati...
„Wie lässt man eine Website hochwertig aussehen? ...
1. Die Bedeutung von Webstandards verstehen - War...
1. Einleitung Warum brauchen wir Indizes? In allg...
1. W3C-Versionen von Flex Version 2009 Flag: Anze...
In diesem Artikel wird der Beispielcode von CSS3 ...
Inhaltsverzeichnis 502 Bad Gateway Fehlerbildung ...
Aufgrund einiger seiner eigenen Merkmale (Sperren...
Inhaltsverzeichnis Hintergrund Welche Methoden gi...
Shell-Skript #!/bin/sh # Aktuelles Verzeichnis CU...
Die Festlegung einer Begrenzung der Anzahl von Be...
Laden Sie das RPM-Installationspaket herunter Off...
In diesem Dokument werden die Installations- und ...
= Nur beim Setzen und Aktualisieren wirkt es wie ...
Vorwort Wie Sie alle wissen, sind wir bei MySQL-B...