Zur Navigation

Alte Website mit eigenem DB-prefix aus DB löschen

1 Martin

Hallo,
ich habe in einer Datenbank zwei Websites, eine alte, die ich nicht mehr brauche und eine neue. Per DB-prefix kann man das ja machen - sofern der Platz reicht.

Wie kann ich die alte Site sauber aus der Datenbank löschen? Ich würde es lieber vermeiden, es manuell zu probieren, da ich so etwas noch nie gemacht habe. Aber die Plugins, die es da zu Wordpress gibt, bieten immer nur das Löschen von revisions, Spam-Kommentare, Reste entfernter Plugins und so etwas an.

Andererseits scheint es echt leicht zu sein, mit phpmyadmin:
http://support.hostgator.com/articles/specialized-help/technical/phpmyadmin/how-to-drop-tables-from-a-database-in-phpmyadmin

Ich sehe dann links alle Tabellen meiner DB. Die Hälfte aller Tabellen hat das prefix der alten Site, die andere Hälfte der neuen Site. Die Tabellen der alten Site auswählen und unten löschen wählen.
Mehr ist es nicht? Alles damit sauber gelöscht?

Martin

28.05.2015 00:15

2 Jörg Kruse

Die Tabellen der alten Site auswählen und unten löschen wählen.
Mehr ist es nicht? Alles damit sauber gelöscht?

Ja, das kannst du so machen.

Und wenn du dir unsicher bist, kannst du vorher zur Sicherheit noch (unter dem Tab "Exportieren") ein Backup machen.

28.05.2015 10:10

3 Martin

Okidoki, dann muss ich nur aufpassen, dass ich keine Tabelle der neuen Website erwische, aber da die Tabellen alphabetisch nach dem Prefix sortiert sind, kann da eigentlich nix schief laufen. Es ist einfach eine gewisse Hemmschwelle, direkt in der DB zu löschen, wenn man das noch nie gemacht hat...

Sehe ich die Grundsatzfrage "mehrere Sites in einer DB mit versch. prefixes oder für jede Site eine eigene DB" insoweit richtig:

-Wenn die Sites nicht groß sind und man ein paar Euro sparen kann (je nach Tarfif), dann kann man gefahrlos zu der bewährten Methode greifen, per prefixes mehrere Sites in einer DB zu installieren.

-Besser wäre es aber, für jede Site bzw. Wordpress-Installation eine eigene DB zu haben, weil bei evtl. DB-Problemen immer nur EINE Site betroffen sein kann. Außerdem wird es im Hinblick auf die Performance besser sein.

Gibt es noch weitere Überlegungen, die eine Rolle spielen könnten?



Martin

28.05.2015 10:38

4 Jörg Kruse

-Wenn die Sites nicht groß sind und man ein paar Euro sparen kann (je nach Tarfif), dann kann man gefahrlos zu der bewährten Methode greifen, per prefixes mehrere Sites in einer DB zu installieren.

Ja.

-Besser wäre es aber, für jede Site bzw. Wordpress-Installation eine eigene DB zu haben, weil bei evtl. DB-Problemen immer nur EINE Site betroffen sein kann.

Das wäre nur der Fall, wenn die Datenbanken auf verschiedenen Datenbank-Servern liegen.

Außerdem wird es im Hinblick auf die Performance besser sein.

Das wäre mir neu.

Gibt es noch weitere Überlegungen, die eine Rolle spielen könnten?

Der Hauptvorteil ist denke ich, dass es mit einer Datenbank pro Anwendung einfach übersichtlicher ist, und dass man z.B. nicht manuell mehrere Tabellen selektieren muss, wie in diesem Fall. Ggf. sind Datenbanken auch handlicher hinsichtlich Rechtezuteilung.

28.05.2015 11:33

5 Martin

Alte Tabellen sind gelöscht und eine weitere, die zu einem bereits wieder entfernten Plugin gehörte, ebenfalls. Bisher ist mir nichts um die Ohren geflogen :)

Einfacher kann man das per Plugin eigentlich auch nicht machen.

Was die performance angeht:
Je weniger in einer DB drin ist und je weniger "Verschiendenes", desto schneller können Inhalte rausgeholt werden, wäre jetzt meine Überlegung gewesen.



Martin

29.05.2015 01:16

6 Jörg Kruse

Je weniger in einer DB drin ist und je weniger "Verschiendenes", desto schneller können Inhalte rausgeholt werden, wäre jetzt meine Überlegung gewesen.

Relevant ist da eher die Größe der Tabelle(n), die in der jeweiligen Query abgefragt werden.

Siehe auch die Antwort von Bill Karwin in diesem Thread auf stackoverflow.com:

There should be no significant performance difference between multiple tables in a single database versus multiple tables in separate databases.

In MySQL, databases (standard SQL uses the term "schema" for this) serve chiefly as a namespace for tables. A database has only a few attributes, e.g. the default character set and collation. And that usage of GRANT makes it convenient to control access privileges per database, but that has nothing to do with performance.

Also für die Performance macht es keinen Unterschied, wenn du die Tabellen auf mehrere Datenbanken verteilst. Für eine hierarchische Organisation sowie für die Zuweisung von Rechten und Zeichensätzen kann dies aber von Vorteil sein.

29.05.2015 14:39

7 Martin

O.K.
Ich glaube, ich bin auf diese Idee gekommen, weil ich noch im Hinterkopf hatte, dass speziell bei WP mal eine Problem mit der Permalink-Wahl und pages gab, was zu "schlechten" (i.S.v. aufwendigen, relativ lange dauernden) Abfragen führte. Wobei das gelöst wurde.

Für 50 Cent im Monat werde ich es mir gönnen. Im Zweifelsfall scheint es mir irgendwie sicherer und flexibler zu sein.

Versehentliche Fehler sind wohl unwahrscheinlicher, wenn man eine saubere Trennung hat.

Manche Plugins, die z.B. DB-Inhalte auslesen oder verändern, unterscheiden nicht und bringen dann immer alles, was in der einen Datenbank drin ist, egal, welche Domain, obwohl man vielleicht nur an einer interessiert ist.

Statistik könnte vielleicht noch ein weiteres Argument für Trennung sein.

Irgendwie fühle ich mich wohler mit "pro Domain eine eigene DB".

Martin

29.05.2015 21:32

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]