15 Nützliche Tipps zur Leistungsoptimierung und Optimierung von MySQL / MariaDB


MySQL ist ein leistungsstarkes Open-Source-System für das Management relationaler Datenbanken oder kurz RDBMS . Es wurde bereits 1995 (20 Jahre alt) veröffentlicht. Es wird Structured Query Language verwendet, die wahrscheinlich die beliebteste Option zum Verwalten von Inhalten in einer Datenbank ist. Die neueste MySQL-Version ist 5.6.25 und wurde am 29. Mai 2015 veröffentlicht.

Eine interessante Tatsache über MySQL ist, dass der Name von Michael Widenius ' (MySQLs Schöpfer) Tochter My stammt. Obwohl es viele interessante Fakten zu MySQL gibt, soll dieser Artikel Ihnen einige nützliche Methoden zur Verwaltung Ihres MySQL-Servers zeigen.

Im April 2009 wurde das MySQL-Projekt von Oracle gekauft. Als Ergebnis wurde ein MySQL-Community-Zweig mit dem Namen MariaDB erstellt. Der Hauptgrund für die Erstellung des Fork war, das Projekt unter der General Public License frei zu halten.

Heute gehören MySQL und MariaDB zu den am häufigsten (wenn nicht sogar am häufigsten) verwendeten RDBMS für Webanwendungen wie WordPress und Joomla , Magento und andere.

Dieser Artikel zeigt Ihnen einige grundlegende und dennoch nützliche Tipps, wie Sie die Leistung von MySQL/MariaDB optimieren können. Bitte beachten Sie, dass in diesem Artikel davon ausgegangen wird, dass Sie bereits MySQL oder MariaDB installiert haben. Wenn Sie sich noch nicht sicher sind, wie Sie sie auf Ihrem System installieren sollen, finden Sie hier unsere ausführlichen Anleitungen:

  1. Installing LAMP on RHEL/CentOS 7
  2. Installing LAMP on Fedora 22
  3. Setting Up LAMP on Ubuntu 15.04
  4. Installing MariaDB on Debian 8
  5. Install MariaDB on Gentoo Linux
  6. Install MariaDB on Arch Linux

rot

Dinge, die Sie wissen müssen:

  1. MySQL/MariaDB configuration file is located in /etc/my.cnf. Every time you modify this file you will need to restart the MySQL service so the new changes can take effect.
  2. For writing this article MySQL version 5.6 has been used as template.

1. Aktivieren Sie InnoDB File-Per-Table

Zunächst muss erklärt werden, dass es sich bei InnoDB um eine Speicher-Engine handelt. MySQL und MariaDB verwenden InnoDB als Standardspeicher-Engine. In der Vergangenheit wurde MySQL verwendet, um Datenbanktabellen und -indizes in einem Systemtabellenbereich zu speichern. Dieser Ansatz war für Server gedacht, deren einziger Zweck die Datenbankverarbeitung ist und deren Speicherdatenträger nicht für andere Zwecke verwendet wird.

Die InnoDB bietet einen flexibleren Ansatz, und alle Datenbankinformationen werden in einer .ibd -Datendatei gespeichert. Jede .ibd -Datei repräsentiert einen eigenen Tablespace. Auf diese Weise können Datenbankvorgänge wie " TRUNCATE " schneller ausgeführt werden und Sie können auch nicht verwendeten Speicherplatz zurückfordern, wenn Sie eine Datenbanktabelle löschen oder abschneiden.

Ein weiterer Vorteil dieser Konfiguration ist die Tatsache, dass Sie einige der Datenbanktabellen auf einem separaten Speichergerät speichern können. Dies kann die E/A Belastung Ihrer Festplatten erheblich verbessern.

Die innodb_file_per_table ist in MySQL 5.6 und höher standardmäßig aktiviert. Sie können dies in der Datei /etc/my.cnf sehen. Die Direktive sieht so aus:

innodb_file_per_table=1

2. Speichern Sie MySQL-Datenbankdaten auf einer separaten Partition

rot

Manchmal verlangsamen Lese-/Schreibzugriffe auf das Betriebssystem die Leistung Ihres MySQL-Servers, insbesondere wenn sich dieser auf derselben Festplatte befindet. Stattdessen würde ich empfehlen, eine separate Festplatte (vorzugsweise SSD) für den MySQL-Dienst zu verwenden.

Um dies abzuschließen, müssen Sie das neue Laufwerk an Ihren Computer/Server anschließen. In diesem Artikel gehe ich davon aus, dass sich das Laufwerk unter /dev/sdb befindet.

Der nächste Schritt ist das Vorbereiten des neuen Laufwerks:

# fdisk /dev/sdb

Drücken Sie nun " n ", um eine neue Partition zu erstellen. Drücken Sie anschließend auf " p ", um die neue Partition als primäre Partition festzulegen. Stellen Sie danach die Partitionsnummer auf 1-4 ein. Danach wählen Sie die Partitionsgröße. Drücken Sie hier die Eingabetaste. Im nächsten Schritt müssen Sie die Größe der Partition konfigurieren.

Wenn Sie die gesamte Festplatte verwenden möchten, drücken Sie erneut die Eingabetaste. Andernfalls können Sie die Größe der neuen Partition manuell festlegen. Wenn Sie fertig sind, drücken Sie " w ", um die Änderungen zu speichern. Jetzt müssen wir ein Dateisystem für unsere neue Partition erstellen. Das geht ganz einfach mit:

# mkfs.ext4 /dev/sdb1

Nun werden wir unsere neue Partition in einen Ordner mounten. Ich habe meinen Ordner " ssd " benannt und im Stammverzeichnis erstellt:

# mkdir /ssd/

Wir sind bereit, die neue Partition, die wir gerade erstellt haben, in den neuen Ordner einzubinden:

# mount /dev/sdb1  /ssd/

Sie können die Bereitstellung beim Start durchführen, indem Sie die folgende Zeile in die Datei /etc/fstab einfügen.

/dev/sdb1 /ssd ext3 defaults 0 0

Jetzt können Sie MySQL auf die neue Festplatte verschieben. Stoppen Sie zuerst den MySQL-Dienst mit:

# service mysqld stop

Ich würde empfehlen, Apache/nginx ebenfalls zu stoppen, um Schreibversuche in die Datenbanken zu verhindern:

# service httpd stop
# service nginx stop

Kopieren Sie nun das gesamte MySQL-Verzeichnis in das neue Laufwerk:

# cp /var/lib/mysql /ssd/ -Rp

Dies kann eine Weile dauern, abhängig von der Site Ihrer MySQL-Datenbanken. Wenn dieser Vorgang abgeschlossen ist, benennen Sie das MySQL-Verzeichnis um:

# mv /var/lib/mysql /var/lib/mysql-backup

Als nächstes erstellen wir einen Symlink.

# ln -s /ssd/mysql /var/lib/mysql

Nun können Sie Ihren MySQL- und Webdienst starten:

# service mysqld start
# service httpd start
# service nginx start

Zu diesem Zeitpunkt wird auf Ihre MySQL-Datenbanken vom neuen Laufwerk aus zugegriffen.