Suchen und Finden
Service
Infos und Kontakt
12 Stored Procedures (S. 491-492)
Stored Procedures (kurz SPs) sind die wichtigste Neuerung in MySQL 5.0. Es handelt sich um selbst definierbare SQL-Prozeduren oder -Funktionen, die direkt vom My- SQL-Server gespeichert und ausgeführt werden. Mit SPs steht Ihnen eine eigene, auf SQL basierende Programmiersprache zur Verfügung. SPs ermöglichen es, einen Teil der Logik einer Datenbankanwendung vom Client zum Server zu verlagern.
In diesem Kapitel erfahren Sie zuerst, warum SPs überhaupt sinnvoll sind (höhere Geschwindigkeit, höhere Datensicherheit, weniger Coderedundanz etc.). Die weiteren Abschnitte beschreiben Details der SP-Implementierung in MySQL und geben eine Reihe von Anwendungsbeispielen. Zuletzt wird der SP-Administrator vorgestellt, ein kleines PHP-Beispielprogramm, das die Administration von SPs sehr vereinfacht.
Achtung
Leider hat sich MySQL 5.0 in den letzten Monaten langsamer entwickelt, als die MySQL-Entwickler ursprünglich versprochen hatten. Dieses Kapitel basiert auf der Entwicklerversion von MySQL 5.0, die wir am 4. November 2004 selbst kompiliert haben. Diese Version liegt zwischen MySQL 5.0.1 und der damals noch nicht verfügbaren Version 5.0.2. Stored Procedures funktionieren in dieser Version in den Grundzügen, aber noch alles andere als stabil: Beim Testen sind zahlreiche Abstürze des MySQL-Servers aufgetreten, was sonst bei keinem anderen Thema dieses Buchs der Fall war!
Das ist nicht das einzige Problem: Im November 2004, als dieses Kapitel verfasst wurde, gab es keine Benutzeroberfläche, um SPs einigermaßen komfortabel zu erstellen oder zu verändern: phpMyAdmin 2.6 ist zur Administration von SPs gänzlich ungeeignet, und auch der MySQL Query Browser 1.1.0 stellt erst rudimentäre Funktionen zur Verfügung. Mehr Komfort bei der Entwicklung eignener SPs bietet der in Abschnitt 12.8 vorgestellte SP-Administrator, ein kleines PHP-Programm.
Beim Schreiben dieses Kapitels sind nicht nur Fehler in MySQL, sondern auch solche in PHP 5 aufgetreten. Beispielsweise funktioniert die Rückgabe von SELECT-Ergebnissen aus SPs erst ab PHP 5.0.3. Erfreulich war hier die ungemein rasche Problembehebung durch die PHP-Entwickler, so dass Probleme manchmal innerhalb von Stunden im nächsten PHP-Snapshot (http://snaps.php.net) gelöst wurden.
Kurz und gut: Als dieses Kapitel verfasst wurde, hatten SPs noch einen experimentellen Charakter. Das Kapitel richtet sich somit an erfahrene Programmierer, die sich schon jetzt mit der schönen neuen Welt der Stored Procedures befassen möchten. Mit dem Praxiseinsatz von SPs sollten Sie aber warten, bis sich MySQL 5.0 einigermaßen stabilisiert hat. (Aus heutiger Sicht wird das voraussichtlich Mitte 2005 der Fall sein.)
12.1 Wozu Stored Procedures?
Stored Procedures sind eine Sammlung von SQL-Kommandos, die direkt im My- SQL-Server gespeichert und auch dort ausgeführt werden. Je nach Anwendung können sich daraus die folgenden Vorteile ergeben:
Höhere Geschwindigkeit: Oft ist es so, dass zur Durchführung einer Datenbankoperation eine Menge Daten zwischen dem PHP-Programm und dem Datenbank-Server hin- und hertransportiert werden müssen: Das PHP-Programm führt ein SELECT-Kommando aus, verarbeitet das Ergebnis, führt mit diesen Ergebnissen ein UPDATE-Kommando aus, ermittelt LAST_INSERT_ID etc. Wenn diese Schritte alle auf dem Server in einer SP stattfinden können, erspart das ganz offensichtlich eine Menge Kommunikation und Overhead zur Datenumwandlung.
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion




















