Keine Zeit, darüber zu sprechen, wie Sie Tabellen optimiert, um bessere Ergebnisse zu erzielen. Ich erinnere mich nur, dass die Felder indiziert Verbesserung der Ausführung sehr viel Zeit. Diskussion anstelle von einigen kleinen Trick, um es leistungsfähiger, dass MySQL installiert ist in der Regel auf den meisten Distributionen ohne zu viele Parameter für die Stimmung. Die Informationen beziehen sich eine Linux-Distribution, kann aber leicht auf andere Betriebssysteme.
Die Konfigurationsdatei befindet sich normalerweise in / etc / my.ini.
Eempio der my.ini:
[mysqld]
datadir = / var / lib / mysql
socket = / var / lib / mysql / mysql.sock
set-variable = key_buffer = 64M
set-variable = max_user_connections = 100
set-variable = query_cache_size = 64M
# Standard-Passwort, um mit alten Format für die Kompatibilität mit MySQL 3.x
# Kunden (die mit der Vereinbarkeit mysqlclient10 Paket).
old_passwords = 1
[mysql.server]
user = mysql
basedir = / var / lib
[mysqld_safe]
err-log = / var / log / mysqld.log
pid-file = / var / run / mysqld / mysqld.pid
Puffer: Puffer eines incremeto erhalten eine Datenbank wesentlich schneller. Dann sind die Puffer auf der Grundlage der Größe des Speichers verfügbar ist, unter Berücksichtigung der Verbrauch durch das Betriebssystem und andere Anwendungen und Dienste im Einsatz. Wenn Sie zu viel Speicher zuweisen zwar nicht mit einer Bestimmung kann es in die allgemeine Leistung des Systems.
Wait_timeout: ist die Zeit, bevor sie geschlossen wird automatisch eine Verbindung zum MySQL wegen Inaktivität. Niederösterreich ist eine bessere Leistung. In diesem Fall müssen Sie auch die Art der Verbindungen und deren angebliche Zeit zu kalibrieren, die besten Parameter.
back_log: Steuert, wie viele gleichzeitige Verbindungen aufrechterhalten kann, während Mysql neue Thread. Je niedriger die Zahl, desto höher die Geschwindigkeit. Vorsicht, es ist einfach nicht die Funktion, indem dieser Parameter korrekt ist, verwenden Sie diese nur, wenn unbedingt notwendig.
Max_user_connections: Legt die maximale Anzahl von Verbindungen zu einem Benutzer. Es ist sehr nützlich, in Systemen, bei denen die gleichen MySQL-Server hat Zugriff auf mehrere Benutzer gleichzeitig.
Delayed_queue_size: Anzahl der Zeilen mit INSERT DELAYED. Wird weniger entlang der Linien, desto schneller Mysql.
Sort_buffer_size: Setzt die Größe des Puffers für die Umsetzung der Klauseln ORDER BY und GROUP BY. Um Anfragen effizienter es diesen Parameter auf einen Wert größer als 2M.
Table_cache: Kontrolliert die Anzahl offener Tabellen für alle Threads, wodurch diese Variable wird die Tabellen gleichzeitig geladen und die Ausführung von MySQL wird sehr viel schneller. Aufmerksamkeit auf diese Parameter, die Betriebssysteme haben ein Limit von Verweisen auf Dateien, auf einmal, wenn Sie diese Grenze überschreiten können Sie entstehen in einem System Fehlfunktion.
Thread_cache_size: Legt die Anzahl der Threads im Cache zu halten. Diese Eigenschaft macht die Verwendung von Threads sehr schnell.
Die Status-Befehl hilft uns dabei, in Echtzeit zu überwachen und den Variablen, die mehr als andere, um uns zu helfen, was sind die wichtigsten Verbesserungen, die wir machen können:
- Handler_read_first: Gibt an, wie oft der erste Datensatz wurde aus einer Tabelle. Wenn dies häufig auftritt, bedeutet dies, dass die Tabelle nicht korrekt indiziert.
- Innodb_buffer_pool_wait_free: zeigt die Anzahl der mal, dass MySQL hat zu warten, für die Spülung der Seiten-Speicher. Wenn der Rückgabewert hoch ist dann die Bufferpool Größe wurde nicht richtig konfiguriert für den Betrag von Schreib-Operationen unterzogen, indem der Server.
- Key_reads: zeigt die Anzahl der Zugriffe, dass MySQL die Datei-System für die Datenbank-Indizes. Dies verlangsamt die Geschwindigkeit der Ausführung der Abfrage, so dass, wenn dieser Wert hoch ist, dann bedeutet dies, dass der Schlüssel ist zu klein und sollte erhöht werden.
- Max_used_connections: Zeigt die maximale Anzahl von MySQL Verbindungen, mussten während der letzten Boot. Auf der einen Seite bedeutet dies eine echte Benchmark (es hilft, zu entscheiden, die maximale Anzahl der Verbindungen, kann der Server-Unterstützung) und die andere ist als eine bequeme-Traffic-Analyzer.
- Open_tables: Zeigt die aktuelle Anzahl der Tabellen geöffnet. Dieser Wert sollte analysiert werden, in Kombination mit der Cache-Größe der Tabelle. Normalerweise wird die Größe der table_cache sollte höher für diese Variable. Wenn der Wert von open_tables ist viel niedriger als table_cache Performance-Probleme zu vermeiden, ist es daher auch die Größe des Cache. Wenn der Wert von open_tables ist sehr hoch und nähert sich die Größe des Cache, dann erhöhen table_cache.
- Select_full_join: Die Anzahl der vollständigen Beitritt MySQL hat, um den Anforderungen der Kunden. Ein hoher Wert zeigt an, dass statt der Verwendung von Indizes, MySQL wurde gezwungen, vollständige beitreten. Dies legt nahe, die Notwendigkeit einer starken Index der Tabellen.
- Slow_queries: zeigt die Anzahl der Abfragen, die länger als üblich zu tun. Ein hoher Wert sollten uns zur Analyse der Logdatei für langsame Anfragen zu identifizieren, was sind die langsame Anfragen zu optimieren.
- Threads_connected: Zeigt die Gesamtzahl der Kunden, die an den Server in einem solchen Moment.
- Created_tmp_disk_tables: zeigt die Anzahl der temporären Tabellen, die erstellt wurden, anstatt auf der Festplatte der Erinnerung. Angesichts der Tatsache, dass auf die Tabellen auf einer Festplatte ist in der Regel langsamer als Speicher, der Inhalt der Variablen ist umgekehrt proportional zu der Geschwindigkeit, mit der Anfragen werden mit dem Befehl CREATE TEMPORARY TABLE.
- Uptime: zeigt an, wie viele Sekunden auf den Dienst.



































