Go Back

Datenbank optimieren

Wir verwenden die MariaDB-Server. Dies ist eine sehr gute Weiterentwicklung der MySQL-Server und ändert nichts an der Kompatibilität der MySQL-Datenbanken mit MariaDB. Bei MariaDB wird empfohlen, MyISAM-Tabellen in das neue Aria-Format zu konvertieren, da dies eine bessere Absturzsicherheit und etwas mehr Geschwindigkeit bietet. Die Konvertierung zu innoDB ist die zweite Option.

Das Konvertieren von Tabellen ist eine sehr primäre Aufgabe einer Datenbankoptimierung. Die eigentliche Optimierung besteht darin, Indizes in Ihrer Datenbank zu haben, und darauf ist in bestehenden CMS schwer zuzugreifen, aber für Module von Drittanbietern, die Sie erworben haben, zugänglich (schlagen Sie dem Herausgeber vor, sein Modul zu optimieren). Bei benutzerdefinierten Websites kann diese technisch schwierige Arbeit nur von einem Datenbankspezialisten oder einem sehr erfahrenen Webmaster durchgeführt werden. Sehen Sie sich außerdem spezielle Online-Tutorials an.

Testen Sie vor dem Konvertieren die Funktionen von phpmyadmin in dieser Reihenfolge, indem Sie alle Tabellen in einer Datenbank auswählen: Tabelle überprüfen, Tabelle reparieren, Tabelle optimieren ...

Die erste Idee besteht darin, große Tabellen in einer Datenbank in MB-Größe zu identifizieren, aber auch solche mit vielen Zeilen: Sortieren Sie Ihre Tabellen nach phpmyadmin oder cpanel, um sie zu identifizieren.

Wenn die Größe gerechtfertigt ist, also nicht für Protokolle/Cache oder ähnliches, in diesem Fall müssen sie regelmäßig geleert werden.

Wenn kein Fall Ihre Datenbank betrifft und das Problem weiterhin besteht, liegt das Problem wahrscheinlich am Design der Datenbank oder einiger mit Plugins verknüpfter Tabellen oder auch daran, dass Ihr PHP-Code ebenfalls nicht gut ist...

Wie konvertiert man MyISAM-Tabellen in Aria oder InnoDB?

Um /ex alle vorhandenen MyISAM in InnoDB zu konvertieren. Klicken Sie in phpmyadmin mit der linken Maustaste auf Ihre Datenbank und dann oben auf „SQL“. Fügen Sie dies unten ein und klicken Sie dann auf „Ausführen“

SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=InnoDB;')

FROM INFORMATION_SCHEMA.TABLES

WHERE ENGINE='MyISAM'

Das Ergebnis wird standardmäßig mit kurzen Texten angezeigt, Sie müssen daher oben in „+ Optionen“ auf „Volltexte“ klicken und erhalten dieses in diesem Beispiel:

ALTER TABLE ps_carrier ENGINE=InnoDB;

ALTER TABLE ps_expressmailing ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email_accountdates ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email_birthdays ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email_buyingdates ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email_categories ENGINE=InnoDB;

ALTER TABLE ps_expressmailing_email_civilities ENGINE=InnoDB;

Erstellen Sie nun eine Kopie des obigen Satzes und fügen Sie ihn in SQL ein. Klicken Sie dann auf „Ausführen“, und schon ist die Konvertierung abgeschlossen!

Empfohlen und Priorität:

Wenn Sie unter MariaDB wie YOORshop arbeiten, empfehlen wir die Konvertierung der MyISAM-Tabellen einer Datenbank in ARIA (dieses Format ist absturzsicherer und effizienter):

SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=ARIA;')

FROM INFORMATION_SCHEMA.TABLES

WHERE ENGINE='MyISAM'

So konvertieren Sie die InnoDB-Tabellen einer Datenbank in ARIA:

SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=ARIA;')

FROM INFORMATION_SCHEMA.TABLES

WHERE ENGINE='InnoDB'

So konvertieren Sie ARIA-Tabellen aus einer Datenbank in InnoDB:

SELECT CONCAT('ALTER TABLE ',TABLE_NAME,' ENGINE=InnoDB;')

FROM INFORMATION_SCHEMA.TABLES

WHERE ENGINE='ARIA'

Wenn Ihre Datenbank für Prestashop /ex ohne Grund groß ist, beispielsweise ein wichtiger Katalog, können Sie „leeren“ ausführen. Diese prestashop-Tabellen können problemlos geleert werden, siehe Schaltfläche „Leeren“:

ps_connections

ps_connections_page

ps_connections_source

ps_guest (dies ist mit dem Statistikmodul verknüpft und wird erneut ausgefüllt, wenn Sie das Modul nicht deaktivieren)

ps_pagenotfound

ps_page_viewed

ps_referrer_cache

ps_date_range

ps_search_index + ps_search_word + ps_statssearch müssen gleichzeitig ausgeführt werden, dann wird der Suchindex in prestashop neu erstellt

Andere Tabellen, die mit Modulen verknüpft sind oder nicht, und das Speichern des Caches, ohne ihn jemals zu leeren, können geleert werden, konsultieren Sie den Editor.

Hinweis:

Um auf einen anderen Server mysql zu migrieren, müssen Sie die Aria-Tabellen zurück in innodb oder myslam konvertieren

Export, Optionen:

deaktivieren Sie AUTO_INCREMENT

Bearbeiten Sie die Datenbank mit Notepad+ und entfernen Sie TRANSACTIONAL=1 überall

Importieren Sie die Datenbank, es sollten keine Fehler auftreten ... (das MYSQL 40-Format kann hilfreich sein)