Zurück zur “Webseiten beschleunigen” – Übersicht
7.) MySQL optimieren
cd /root
wget http://mysqltuner.com/mysqltuner.pl
wget http://www.day32.com/MySQL/tuning-primer.sh
chmod +x mysqltuner.pl
chmod +x tuning-primer.sh
./mysqltuner.pl
./tuning-primer.sh
Link:
rackerhacker.com/mysqltuner/ – mysqltuner
www.day32.com/MySQL/ – tuning-primer
Beispiel:
Wenn wir unserem MySQL-Server z.B. 64 MB zur Verfügung stellen möchten ->
key_buffer = 12M + (read_buffer = 4M + sort_buffer = 4 M) x max_connections = 64 MB
12 + (4 + 4) x max_connections = 64
Formel nach max_connections umstellen
max_connections = (RAM – key_buffer) : (read_buffer + sort_buffer)
max connections = (64 – 12) : (4 + 4)
max_connections = 52 : 8
max_connections = 6,5
benötigen wir mehr als 6,5 max_connections, müssen wir mehr RAM zur Verfügung stellen oder read_buffer und sort_buffer kleiner einstellen…
[stextbox id=”info” caption=”Regel”]
Je weniger RAM zur Verfügung steht und je mehr max_connections benötigt werden, desto kleiner müssen read_buffer, sort_buffer u. key_buffer sein.
[/stextbox]
my.cnf – Konfigurationsdatei überprüfen ob der key_buffer so groß ist, dass alle Indizies in den Buffer passen und table_cache in etwa der Anzahl der Tabellen entspricht.
Zudem sollte man darauf achten, dass MySQL-Cache eingeschaltet ist.
-> query_cache_type=1
Als Anwendungsbeispiel werde ich an dieser Stelle die MySQL-Konfiguration meines Servers überprüfen ->
Ich werde hier jedoch nur die Fehler, welches das Skript in meiner Konfig gefunden hat auflisten…
- [!!] Total fragmented tables: 2
-> das nachfolgende Kommando schafft hier Abhilfe (könnte man so, oder so ähnlich auch als cronjob (crontab) laufen lassen
crontab -e
30 * * * * /usr/bin/mysqlcheck -u USER -pPASSWORT --auto-repair --check --optimize --all-databases > /dev/null 2>&1In diesem Beispiel werden alle Datenbanken, jede 30 Minuten defragmentiert bzw. optimiert.
- [!!] Key buffer size / total MyISAM indexes: 10.0M/13.7M
-> key_buffer = 15M erhöhen
7.1) MariaDB (MySQL-Fork)
In den letzen Wochen habe ich auch mit einem Mysql-Fork herumgespielt (MariaDB), dieser soll einige Vorteile in der Geschwindigkeit bringen. Man kann die Software über die Debian Pakete installieren nachdem man folgendes in seine “sources.list” aufgenommen hat.
deb http://mirror.ourdelta.org/deb lenny mariadb-ourdelta
deb-src http://mirror.ourdelta.org/deb lenny mariadb-ourdelt
… danach noch ein …
apt-get update
… und schon kannst du die Software gegen MySQL austauchen, dies funktioniert z.B. mit “aptitude” (mariadb-server) auch sehr gut, jedoch hatte ich das Problem, dass mein ISPConfig (eine Server Verwaltungsoberfläche) keine neuen Benutzer anlegen konnte, da sich die Syntax des Befehls ein wenig unterscheidet.