Wie kann man mehrere Tabellen in MySQL über PHPMyadmin löschen?

...komplette Frage anzeigen

5 Antworten

Du redest von "Tabellen". Meinst Du nicht vielmehr "Datensätze"? Und welches Format hat die Tabelle? Und woran kann man "gute" und "schlechte" Einträge in der Tabelle unterscheiden?

Wenn Du all diese Fragen beantworten kannst, dann lässt sich daraus auch ein SQL-Statement (oder vielleicht 2-3 davon) konstruieren, was Dir die Records zielgerichtet in den Datenhimmel katapultiert.

Blockbuster2003 04.07.2017, 00:31

Hi! Ich habe unten nochmal als Beitrag geantwortet da ich ansonsten kein Bild anhängen kann...

0

Wenn man sich die einzelnen Zeilen anschaut ergibt sich folgende Schlussfolgerung:

Für jeden Session, die gesetzt wird, werden 2 Zeilen geschrieben.

In Deinem Bild z.B. die Zeilen 2 und 3 (option_id 14836549 und 14836550)

Die von die angesprochene Zahlen und Buchstabenkombination ist in beiden Zeilen gleich und scheint ein MD5 -Hash zu sein, was ich aus der Länge von 32 Zeichen schliesse.

In der 2. Zeile, die mit _wp_session_expires_ beginnt, ist in der Spalte option_value eine 10-stellige Nummer, die einen Unix-Zeitstempel darstellt.

Wandelt man den Wert 1479278605 in eine "lesbare" Zeit um erhält man folgenden Wert: 16.11.2016, 07:43:25

D.h. die Session, die für einen Besucher gesetzt wurde, war bis zu diesem Datum und Uhrzeit gültig.

In der 3. Spalte der 3. Zeile ist zu dieser Session ein serialisierter String gespeichert, der beschreibt, wo der Besucher herkommt und wahrscheinlich, worauf er zuerst gelandet ist... weiteres kann man nicht erkennen.

Ich weiß natürlich nicht welches Plugin die Daten speichert und kann Dir nicht sagen aus welchen Zeitraum Einträge zur Funktion deines Plugins benötigt werden.

Um die Funktionalität nicht zu beeinträchtigen, würde ich diese Tabelle kurz umbennen (z.B. "asdr_options_BU") und eine Kopie der Tabelle erstellen (Aber nur Struktur, keine Daten) und diese dann zu "asdr_options" umbenennen.

Wenn Deine Seite nicht mehr funzt, kannst du wieder die umbennannte Tabelle einsetzen.

Wenn die Seite nach wie vor funktioniert und Du erkennen kannst, dass in der neuen leeren Tabelle Daten eingetragen werden, kannst Du die "alte" Tabelle löschen...

Ich weiss nicht wie alt deine WP Installation ist, aber when ein Update mit Database Update kommt, werden alle transients mitgeloescht (seit V. 3.7)

Leider kenne ich mich nicht genug mit SQL aus, aber ich weiss, dass loeschen nicht reicht, du musst die DB hinterher opimisieren, sonst bleiben die Zeilen sozusagen im Hintergrund.

Uebrigens ist die Groesse deiner Tabelle jetzt nicht so das Problem, zumindest was Geschwindigkeit angeht, da nicht-aktive transients gar nicht geladen werden.

Wenn du keine Einträge löschen willst sondern nur mit "nichts" überschreiben kannst du wenn sie strings sind sowas machen

UPDATE deintabellenname SET spaltenname = "";

Aber lege am besten davor Backups an von der kompletten db falls etwas unerwartet läuft!!

LeonardM 04.07.2017, 09:28

es sei denn du meinst tatsächlich das du einträge löschen willst. finde deine frage etwas verwirrend. ich habe kein wp im einsatz :D

0

Vielen Dank soweit für die schnelle Antwort!
Ok, dann muss ich vielleicht noch etwas mehr präzisieren:

Es geht um eine Wordpress-Installtion. Innerhalb Wordpress gibt es die
Tabelle "options". Darin befinden sich viele Infos für die Konfiguration
der Webseite, auch viele Plugins schreiben in "options".

Unter anderem hatte ich lange Zeit ein Cache-Plugin laufen welches
offensichtlich für jede Seite im Cache eine neue Zeile geschrieben hat.

In den Anhang packe ich mal einen Screenshot aus PHPMyAdmin - da siehst Du wie die Tabellen aufgebaut sind - es steht eigentlich nicht viel
drinnen - aber die Masse der Zeilen machts - es sind zig Tausend Zeilen die alle so aussehen. Einige 10000 habe ich bereits händisch gelöscht - es scheint aber nicht weniger zu werden...

 - (löschen, PHP, Wordpress)
dan030 04.07.2017, 00:42

Naja. Du könntest die ganzen Sessiondaten löschen, indem Du z. B. einen

DELETE FROM options WHERE option_name like '_wp_session_%';

abschickst.

Ob Du damit allerdings dann auch (Session-)Daten löschst, die eigentlich stehen bleiben sollten, lässt sich aus der Ferne schlecht einschätzen.

1
Blockbuster2003 05.07.2017, 18:38
@dan030

Vielen Dank!!!! Mit dem Befehl hatte es wunderbar funktioniert! Es hat zwar einige Stunden gedauert und brauchte mehrere Anläufe (da zwischenzeitlich offensichtlich der Server wegen der Datenmenge abgeschmiert war), jetzt aber rennt die Seite wieder wie verrückt! Alle Daten sind weg - so wollte ich es haben!

Leider kann ich diese Antwort nicht auszeichnen und nehmen daher das vorherige Posting! :-)

0

Was möchtest Du wissen?