702 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
Einige Beispiele von Debug-Steuerungs-Zeichenketten, die auf einer Shell-Kommandozeile
erscheinen k¨onnen (das "-#" wird typischerweise benutzt, um eine Steuerungs-Zeichenkette
f¨ur ein Applikationsprogramm einzuf¨uhren):
-#d:t
-#d:f,main,subr1:F:L:t,20
-#d,input,output,files:n
-#d:t:i:O,\\mysqld.trace
In MySQL werden gebr¨auchlicherweise (mit der d-Option) folgende Tags ausgegeben:
enter, exit, error, warning, info und loop.
D.4 Sperrmethoden
Momentan unterst¨utzt MySQL Tabellensperren nur f¨ur ISAM- / MyISAM- und HEAP-Tabellen
und Sperren auf Seitenebene nur f¨ur BDB-Tabellen. Siehe Abschnitt 6.3.1 [Internal locking],
Seite 345. Bei MyISAM-Tabellen k¨onnen Sie INSERT und SELECT ohne Sperren frei vermis-
chen. (Versionierung).
Ab Version 3.23.33 k¨onnen Sie die Tabellensperr-Konkurrenz auf Ihrem System durch
Pr¨ufen der Table_locks_waited- und Table_locks_immediate-Umgebungsvariablen
analysieren.
Einige Datenbankbenutzer behaupten, dass MySQL keine große Anzahl gleichzeitiger Be-
nutzer unterst¨utzen kann, weil es kein Sperren auf Zeilenebene hat. Das mag bei einigen
speziellen Applikationen zutreffen, aber nicht allgemein. Wie immer h¨angt das v¨ollig davon
ab, was Ihre Applikation macht, und davon, wie das Zugriffs-/Aktualisierungs-Muster der
Daten aussieht.
Vorteile f¨ur Zeilensperren:
• Weniger Sperrkonflikte beim Zugriff auf unterschiedliche Zeilen in vielen Threads.
• Weniger
¨
Anderungen bei Rollbacks.
• Macht es m¨oglich, eine einzelne Zeile lange zu sperren.
Nachteile:
• Ben¨otigt mehr Speicher als Sperren auf Seiten- oder Tabellenebene.
• Ist langsamer als Sperren auf Seiten- oder Tabellenebene, wenn es einen großen Teil
der Tabelle betrifft, weil man viel mehr Sperren durchf¨uhren muss.
• Ist definitiv viel schlechter als andere Sperren, wenn Sie oft GROUP BY auf einen großen
Teil der Daten ausf¨uhren oder wenn man die gesamte Tabelle oft scannen muss.
• Bei Sperren auf h¨oherer Ebene kann man einfacher Sperren unterschiedlichen Typs
unterst¨utzen, um die Applikation zu optimieren, weil der Sperr-Overhead sich weniger
als bei Sperren auf Zeilenebene bemerkbar macht.
Tabellensperren sind Seiten- oder Zeilensperren in folgenden F¨allen ¨uberlegen:
• Wenn man meist liest.
• Wenn Lese- und Aktualisierungsoperationen auf strengen Schl¨usseln erfolgen. Das ist
dann der Fall, wenn man eine Zeile aktualisiert oder l¨oscht, die mit einem Schl¨ussel-
Lesen geholt werden kann:
Comentarios a estos manuales