PythonQ 240-8XX Manual de usuario Pagina 374

  • Descarga
  • Añadir a mis manuales
  • Imprimir
  • Pagina
    / 768
  • Tabla de contenidos
  • MARCADORES
  • Valorado. / 5. Basado en revisión del cliente
Vista de pagina 373
Kapitel 6: MySQL-Optimierung 353
Weitere Informationen ¨uber die Art, wie MySQL Indexe benutzt, um die Anfragen-
Performance zu verbessern, finden Sie unter Abschnitt 6.4.3 [MySQL-Indexe],
Seite 349.
6.4.6 Wie MySQL Tabellen ¨offnet und schließt
table_cache, max_connections und max_tmp_tables beeinflussen die maximale Anzahl
von Dateien, die der Server offen halten kann. Wenn Sie einen oder mehrere dieser Werte
erh¨ohen, onnen Sie an eine Begrenzung stoßen, die durch Ihr Betriebssystem in Bezug auf
die Anzahl offener Datei-Deskriptoren pro Prozess festgelegt wird. Diese Begrenzung kann
man jedoch auf vielen Systemen erh¨ohen. Sehen Sie im Handbuch Ihres Betriebssystems
nach, wie man das macht, weil die Methode, wie die Begrenzung ge¨andert wird, sich von
System zu System stark unterscheidet.
table_cache ist verwandt mit max_connections. F¨ur 200 gleichzeitig laufende Verbindun-
gen sollten Sie zum Beispiel einen Tabellen-Cache von mindestens 200 * n haben, wobei n
die maximale Anzahl von Tabellen in einem Join ist. Zus¨atzlich m¨ussen Sie einige externe
Datei-Deskriptoren f¨ur tempor¨are Tabellen und Dateien reservieren.
Stellen Sie sicher, dass Ihr Betriebssystem die Anzahl offener Datei-Deskriptoren hand-
haben kann, die durch die table_cache-Einstellung impliziert wird. Wenn table_cache
zu hoch gesetzt wird, hat MySQL eventuell keine Datei-Deskriptoren mehr und verweigert
Verbindungen, f¨uhrt keine Anfragen mehr aus und auft sehr unzuverl¨assig. Beachten Sie
auch, dass der MyISAM-Tab ellen-Handler zwei Datei-Deskriptoren f¨ur jede einzelne offene
Tabelle ben¨otigt. Sie onnen die Anzahl von Datei-Deskriptoren, die f¨ur MySQL verf¨ugbar
sind, in der --open-files-limit=#-Startoption angeben. Siehe Abschnitt A.2.16 [Not
enough file handles], Seite 631.
Der Cache offener Tabellen kann bis auf table_cache anwachsen (Vorgabewert 64; das kann
mit der -O Tabellen-Cache=#-Option f¨ur mysqld ge¨andert werden). Eine Tabelle wird nie
geschlossen, ausser wen der Cache voll ist und ein anderer Thread versucht, eine Tabelle zu
¨offnen, oder wenn Sie mysqladmin refresh oder mysqladmin flush-tables benutzen.
Wenn sich der Tabellen-Cache f¨ullt, benutzt der Server folgenden Prozedur, um einen Cache-
Eintrag f¨ur die Benutzung zu finden:
Tabellen, die momentan nicht in Benutzung sind, werden freigegeben, in der Reihen-
folge der k¨urzlich am wenigsten benutzten Tabellen.
Wenn der Cache voll ist und keine Tabellen freigegeben werden onnen, aber eine neue
Tabelle ge¨offnet werden muss, wird der Cache tempor¨ar wie ben¨otigt vergr¨oßert.
Wenn der Cache gerade im Zustand tempor¨arer Erweiterung ist und eine Tab elle vom
Zustand benutzt in den Zustand nicht benutzt wechselt, wird die Tabelle geschlossen
und vom Cache freigesetzt.
Eine Tabelle wird f¨ur jeden gleichzeitigen Zugriff ge¨offnet. Das bedeutet, dass die Tabelle
zweimal ge¨offnet werden muss, wenn Sie zwei Threads haben, die auf dieselbe Tabelle zu-
greifen oder einen Thread, der auf die Tabelle zweimal in derselben Anfrage zugreift (mit
AS). Das erste ¨offnen jeder Tab elle ben¨otigt nur einen Datei-Deskriptor. Der zus¨atzliche
Deskriptor wird f¨ur die Index-Datei ben¨otigt; dieser Deskriptor wird mit allen Threads
geteilt (shared).
Vista de pagina 373
1 2 ... 369 370 371 372 373 374 375 376 377 378 379 ... 767 768

Comentarios a estos manuales

Sin comentarios