Optimierung der Datenbanktabellen¶
Bemerkung
Dieses Tutorial ist nur für On-Premise-Kunden gedacht. Das Customer Solutions Team kümmert sich um die Datenbank der verwalteten Kunden.
Aufgrund der Beschaffenheit von Datenbanktabellen können diese im Laufe der Zeit fragmentiert werden. Die Fragmentierung wird durch die Aktualisierung der Werte in den Datensätzen verursacht. Das ist normal, aber eine fragmentierte Tabelle braucht mehr Speicherplatz und die Abfragen können langsamer laufen.
Dies ist ein Thema der Datenbankoperationen und hat nichts mit OTRS zu tun, aber dieses Tutorial kann helfen, das Problem zu identifizieren und zu lösen, wenn die Datenbank immer größer wird.
So optimieren Sie die Datenbanktabellen:
Überprüfen Sie den Status der Tabellen mit der folgenden SQL-Anweisung.
SELECT TABLE_NAME, ROUND(DATA_LENGTH/1024/1024, 2) AS DATA_LENGTH, ROUND(INDEX_LENGTH/1024/1024, 2) AS INDEX_LENGTH, ROUND(DATA_FREE/1024/1024, 2) AS DATA_FREE, (data_free/(index_length+data_length)) AS FRAG_RATIO FROM information_schema.tables WHERE TABLE_SCHEMA = 'otrs' AND DATA_FREE > 0 ORDER BY frag_ratio DESC;
Überprüfen und analysieren Sie die Ausgabe, die wie folgt aussehen sollte.
+--------------------------------+-------------+--------------+-----------+------------+ | TABLE_NAME | DATA_LENGTH | INDEX_LENGTH | DATA_FREE | FRAG_RATIO | +--------------------------------+-------------+--------------+-----------+------------+ | communication_log_object_entry | 0.02 | 0.03 | 10.00 | 213.3333 | | user_config | 1.19 | 0.05 | 4.00 | 3.2405 | | web_upload_cache | 7.31 | 0.00 | 22.00 | 3.0085 | | article_data_mime | 1.52 | 0.06 | 4.00 | 2.5347 | | sysconfig_deployment | 10.02 | 0.02 | 16.00 | 1.5950 | | xml_storage | 1.50 | 1.92 | 4.00 | 1.1689 | | mail_queue | 5.52 | 0.05 | 4.00 | 0.7191 | | virtual_fs_db | 1.52 | 0.02 | 1.00 | 0.6531 | | sysconfig_default | 6.41 | 0.31 | 4.00 | 0.5953 | | sysconfig_default_version | 10.52 | 0.45 | 5.00 | 0.4558 | | package_repository | 33.52 | 0.03 | 11.00 | 0.3279 | +--------------------------------+-------------+--------------+-----------+------------+
Die Ausgabe zeigt, dass der Fragmentierungsgrad der Tabelle
communication_log_object_entry
213 beträgt und die Tabelle 10 MB leere Daten enthält.Wenn das Fragmentierungsverhältnis größer als 50% ist (0.5 in der Spalte
FRAG_RATIO
), sollten Sie erwägen, die Tabelle mit Hilfe der SQL-AnweisungOPTIMIZE
zu optimieren.OPTIMIZE TABLE otrs.communication_log_object_entry;
Überprüfen Sie, ob die Tabelle nicht mehr fragmentiert ist. Verwenden Sie die gleiche SQL-Anweisung wie in Schritt 1.
+---------------------------+-------------+--------------+-----------+------------+ | TABLE_NAME | DATA_LENGTH | INDEX_LENGTH | DATA_FREE | FRAG_RATIO | +---------------------------+-------------+--------------+-----------+------------+ | user_config | 1.19 | 0.05 | 4.00 | 3.2405 | | web_upload_cache | 7.31 | 0.00 | 22.00 | 3.0085 | | article_data_mime | 1.52 | 0.06 | 4.00 | 2.5347 | | sysconfig_deployment | 10.02 | 0.02 | 16.00 | 1.5950 | | xml_storage | 1.50 | 1.92 | 4.00 | 1.1689 | | mail_queue | 5.52 | 0.05 | 4.00 | 0.7191 | | virtual_fs_db | 1.52 | 0.02 | 1.00 | 0.6531 | | sysconfig_default | 6.41 | 0.31 | 4.00 | 0.5953 | | sysconfig_default_version | 10.52 | 0.45 | 5.00 | 0.4558 | | package_repository | 33.52 | 0.03 | 11.00 | 0.3279 | +---------------------------+-------------+--------------+-----------+------------+
Wiederholen Sie Schritt 3 für die anderen Tabellen, falls erforderlich. Sie können mehrere Tabellen gleichzeitig optimieren.
OPTIMIZE TABLE otrs.communication_log_object_entry, otrs.web_upload_cache, otrs.package_repository;
Siehe auch
Lesen Sie das offizielle Handbuch von MySQL für detaillierte Informationen.