Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung
71 Unwetterwarnungen in Deutschland
Die Datenbank wurde zuletzt am 02.08.2020 17:34:28 aktualiesiert
71

MySQL-Datenbank Tuning

Viele Anwendungen nutzen mittlerweile eine Datenbank. Meist ist sie vorinstalliert und man kümmert sich nicht weiter um die Einstellungen. Doch gerade in den DB-Einstellungen liegen oft massive Performance-Einbußen begründet. Dieser Beitrag soll einige hilfreiche Tipps geben, wie man die Einstellungen einer MySQL-Tabelle optimiert.

Erfahrungsgemäß steigt MySQL bei einem Besucheransturm auf eine dynamische Seite als erstes aus. Das liegt daran das ein Großteil
der Installationen die Standard-Konfiguration nicht verändert was u.a. schon die Einschränkung bringt, dass MySQL nur 100 gleichzeitige Verbindungen erlaubt. Und beim 101. macht die Datenbank dann eben dicht.
Die folgenden Tipps sollten einen erheblichen Performance-Schub bringen.

Alle Konfigurationsparameter sind entweder in der /etc/my.cnf in der Sektion [mysqld] einzutragen, z.B.:
[mysqld] set-variable = max_connections=2500 oder als Parameter übergeben z.B.:
safe_mysqld --max_connections=2500 &

Das oben erwähnte Einstellen der max. gleichzetigen Verbindungen ist ein sehr wichtiger Punkt. Oft bemerkt man gar nicht, dass dieses Setting aktiviert ist, wenn man lokal im stillen Kämmerlein eine neue Anwendung mit ein paar Leuten testet. Doch stellt man die Anwendung dann online und es kommen die ersten Besucher, streikt die Datenbank irgendwann – und keiner weiß wieso, weil doch beim Testen alles so schön funktioniert hat.
Wenn man eine stark frequentierte Webseite hat, die bei jedem Aufruf Selects durchführt oder persistente Verbindungen zur
Datenbank verwendet,ist MySQL in der Standard-Konfiguration mit 100 gleichzeitigen Verbindungen schnell am Ende.

MySQL ist in der Lage auch auf schwachen Rechnern viele Verbindungen zu verarbeiten.
Die Variable max_connections sollte mit dem Wert „1000“ bis „2500“ auf einen akzeptablen Wert gebracht werden oder jedoch dem, was Ihre Websiten an gleichzeitigen Benutzern erwarten. Wer sich sicher ist, dass die DB keine Begrenzung braucht, kann auch „0“ einstellen, dann gibt es kein Limit an gleichzeitigen Verbindungen.

Die Parameter key_buffer_size und table_cache sind die wohl wichtigsten performance-bezogenen Variablen. Diese geben an wieviel Speicher MySQL zur Verfügung steht, um Tabellen und Abfrage-Schlüssel zu speichern.
Auf Systemen mit 2 GB-Ram oder mehr und vielen Datenbanken sind folgende Einstellungen zu empfehlen:
key_buffer=128M table_cache=512 sort_buffer=15M

Für Systeme mit moderater RAM-Ausstattung (256 MB – 2 GB) oder wenig Datenbanken sind diese Settings empfehlenswert:
key_buffer=64M table_cache=256 (fuer >= 256MB RAM) oder table_cache=128 (fuer 256MB Ram)
Für diese Systeme reicht auch ein kleiner sort_buffer mit 4 – 8M.

Für Systeme mit 128MB RAM oder weniger sollte man den table_cache nicht einstellen, sondern die Standard-Werte der small.cnf verwenden, jedoch den key_buffer auf 16 oder 32M stellen.