
Kapitel 10: MySQL erweitern 617
10.2 Hinzuf¨ugen neuer Prozeduren zu MySQL
In MySQL k¨onnen Sie eine Prozedur in C++ definieren, die auf Daten in einer Anfrage
zugreifen und diese ¨andern kann, bevor sie an den Client geschickt werden. Die
¨
Anderung
kann Zeile f¨ur Zeile oder auf GROUP BY-Ebene geschehen.
Wir haben eine Beispiel-Prozedur in MySQL-Version 3.23 erzeugt, um zu zeigen, was getan
werden kann.
Zus¨atzlich empfehlen wir, dass Sie einen Blick auf ’mylua’ werfen, das Sie im Contrib-
Verzeichnis finden. Hiermit k¨onnen Sie die LUA-Sprache benutzen, um eine Prozedur zur
Laufzeit in mysqld zu laden.
10.2.1 PROCEDURE ANALYSE
analyse([max Elemente,[max memory]])
Diese Prozedur ist in ‘sql/sql_analyse.cc’ definiert. Sie untersucht das Ergebnis Ihrer
Anfrage und gibt eine Analyse des Ergebnisses zur¨uck:
• max elements (Vorgabe 256) ist die maximale Anzahl unterschiedlicher Werte, die
analyse pro Spalte findet. Dieses wird von analyse benutzt, um zu pr¨ufen, ob der
optimale Spaltentyp vom Typ ENUM sein sollte.
• max memory (Vorgabe 8.192) ist der maximale Speicher, den analyse pro Spalte
zuweisen sollte, wenn Sie versuchen, alle unterschiedlichen (distinct) Werte zu finden.
SELECT ... FROM ... WHERE ... PROCEDURE ANALYSE([max elements,[max memory]])
10.2.2 Eine Prozedur schreiben
Im Moment ist die einzige Dokumentation hierf¨ur der Quelltext.
Sie finden alle Informationen ¨uber Prozeduren, wenn Sie folgende Dateien untersuchen:
• ‘sql/sql_analyse.cc’
• ‘sql/procedure.h’
• ‘sql/procedure.cc’
• ‘sql/sql_select.cc’
10.3 MySQL-Interna
Dieses Kapitel beschreibt viele Dinge, die Sie wissen m¨ussen, wenn Sie am MySQL-Code
arbeiten. Wenn Sie an der MySQL-Entwicklung mitarbeiten wollen, Zugriff auf den messer-
scharfen Code von Zwischenversionen haben wollen, oder einfach nur ¨uber die Entwicklung
auf dem Laufenden bleiben wollen, folgen Sie den Anweisungen unter Siehe Abschnitt 3.3
[Installing source], Seite 67. Wenn Sie an MySQL-Interna interessiert sind, sollten Sie auch
Comentarios a estos manuales