[+/-]
Der C-API-Code wird mit MySQL zusammen ausgeliefert. Er ist in der
mysqlclient
-Bibliothek inbegriffen und
ermöglicht C-Programmen den Zugriff auf die Datenbank.
Viele Clients der MySQL-Quelldistribution sind in C geschrieben.
Wenn Sie Beispiele für die Nutzung der C-API suchen, schauen Sie
sich diese Clients an. Zu finden sind sie im Verzeichnis
clients
der MySQL-Quelldistribution.
Die meisten anderen Client-APIs (alle außer Connector/J und
Connector/NET) nutzen die
mysqlclient
-Bibliothek zur Kommunikation mit
dem MySQL Server. Das bedeutet, dass Sie beispielsweise viele
derselben Umgebungsvariablen einsetzen können, die auch andere
Clientprogramme verwenden, da sie in der Bibliothek referenziert
werden. Eine Liste dieser Variablen finden Sie unter
Kapitel 8, Client- und Hilfsprogramme.
Der Client hat eine Größenbeschränkung für den Kommunikationspuffer. Für den Puffer werden anfangs 16 Kbyte reserviert, die jedoch automatisch bis hin zur Maximalgröße (16 Mbyte) ausgeweitet werden. Da Puffergrößen nur aufgrund der Nachfrage erhöht werden, werden allein dadurch, dass Sie die voreingestellte Maximalgröße erhöhen, keine größeren Ressourcen belegt. Die Überprüfung dieser Größe ist im Grunde nur eine Prüfung auf fehlerhafte Anweisungen und Kommunikationspakete.
Der Kommunikationspuffer muss groß genug sein, um eine einzelne
SQL-Anweisung (für die Übertragung von Client zu Server) und
eine Zeile der Rückgabedaten (für die Übertragung von Server zu
Client) zu speichern. Der Kommunikationspuffer jedes Threads wird
bis zum Größenlimit dynamisch vergrößert, um jede Anfrage oder
Zeile handhaben zu können. Wenn Sie beispielsweise
BLOB
-Werte mit bis zu 16 Mbyte Daten haben,
benötigen Sie für den Kommunikationspuffer ein Limit von
mindestens 16 Mbyte (sowohl im Server als auch im Client). Das
voreingestellte Limit im Client beträgt 16 Mbyte, aber im Server
nur 1 Mbyte. Sie können es erhöhen, indem Sie den Wert des
Parameters max_allowed_packet
beim Serverstart
heraufsetzen. Siehe Abschnitt 7.5.2, „Serverparameter feineinstellen“.
Der MySQL Server lässt jeden Kommunikationspuffer nach jeder
Anfrage auf net_buffer_length
zusammenschrumpfen. Bei Clients wird ein mit einer Verbindung
zusammenhängender Puffer erst beim Schließen der Verbindung
verkleinert, wenn der Arbeitsspeicher des Clients zurückgeholt
wird.
Zur Programmierung mit Threads siehe Abschnitt 24.2.15, „Wie man einen Thread-Client herstellt“. Zur Erstellung einer Standalone-Anwendung, die "Server" und "Client" in demselben Programm enthält (und nicht mit einem externen MySQL Server kommuniziert), siehe Abschnitt 24.1, „libmysqld, die eingebettete MySQL Server-Bibliothek“.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.