Kapitel 3: Installation von MySQL 107
#include <mysql.h>
Sie k¨onnen Ihren Co de entweder mit der dynamischen ‘libmysql.lib’-Bibliothek linken,
die nur ein Wrapper zum Laden der ‘libmysql.dll’ bei Bedarf ist, oder mit der statischen
‘mysqlclient.lib’-Bibliothek.
Beachten Sie, dass MySQL-Client-Bibliotheken als threaded Bibliotheken kompiliert wer-
den, daher sollten Sie auch Ihren Code so kompilieren, dass er multi-threaded ist!
3.6.2.7 MySQL-Windows im Vergleich zu Unix-MySQL
MySQL-Windows hat sich mittlerweile als sehr stabil erwiesen. Diese Version von MySQL
hat dieselben Features wie die entsprechende Unix-Version, allerdings mit folgenden Aus-
nahmen:
Windows 95 und Threads
Windows 95 hat ein etwa 200 Bytes großes Hauptspeicher-Leck (Memory Leak)
f¨ur jede Thread-Erzeugung. Jede Verbindung zu MySQL erzeugt eine neues
Thread, daher sollten Sie mysqld nicht f¨ur l¨angere Zeitr¨aume auf Windows 95
laufen lassen, wenn Ihr Server viele Verbindungen handhabt! Windows NT und
Windows 98 haben diesen Bug nicht.
Gleichzeitige Lesezugriffe
MySQL vertraut auf pread()- und pwrite()-Aufrufe, um in der Lage zu sein,
INSERT und SELECT zu mischen. Momentan benutzen wir mutexes, um pread()
/ pwrite() zu emulieren. Langfristig werden wir die Dateiebenen-Schnittstelle
durch eine virtuelle Schnittstelle ersetzen, um die readfile()- / writefile()-
Schnittstelle auf NT mit h¨oherer Geschwindigkeit benutzen zu k¨onnen. Die
aktuelle Implementation begrenzt die Anzahl offener Dateien, die MySQL be-
nutzen kann, auf 1024, was bedeutet, dass Sie nicht so viele gleichzeitige Threads
auf NT benutzen k¨onnen wie auf Unix.
Blockierendes Lesen
MySQL benutzt blockierendes Lesen (Blocking Read) f¨ur jede Verbindung. Das
bedeutet in der Anwendung:
• Eine Verbindung wird nicht automatisch nach 8 Stunden a/jointfilesconvert/293675/bgebaut, wie es
unter der Unix-Version von MySQL der Fall ist.
• Wenn eine Verbindung h¨angen bleibt, ist es unm¨oglich, sie abzubrechen,
ohne MySQL zu killen.
• mysqladmin kill funktioniert nicht f¨ur schlafende Verbindungen.
• mysqladmin shutdown kann nicht a/jointfilesconvert/293675/bgebrochen werden, solange es noch
schlafende Verbindungen gibt.
Geplant ist, dieses Problem zu beheben, sobald unsere Windows-Entwickler ein
nettes Workaround heraus gefunden haben.
UDF-Funktionen
Momentan unterst¨utzt MySQL-Windows keine benutzerdefinierten Funktionen
(UDF, user defined functions).
Comentarios a estos manuales