PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : vms_buchungen viel zu groß



Cojack
04.05.2014, 13:59
Hallo

ich hoffe ihr könnt mir helfen. Und zwar habe ich festgetellt das meine vms_buchungen Tabelle in der Datenbank knapp 5 Mio einträge hat. Und dadurch ist di ganze DB natürlich riesig, kann mir jemand sagen wie und was ich auch dieser löschen kann.


Danke

Sven

rene_1992
04.05.2014, 18:50
Hallo,

es gibt im Downloadbereich ein Optimierer. (LINK (http://www.designerscripte.net/downloads.php?do=file&id=116))

Noch als kleiner Tipp:

Sind deine Paid 4 Dienste mit Buchungsfunktionen Versetzt?

DJschatz27
04.05.2014, 20:29
Cojack am besten wenn du alles in ner Buchungsliste haben möchtest
erweitere sie und lass z.b. den game Bereich und alles andere
in seperaten Buchungen anzeigen
so haben die user erstens eine bessere übersicht
die db ist nicht so voll
du kannst sagen das alle 30 tage die Buchungen gellert werdenmit dem Optimierer den rene_1992 meinte

Die Datenbank leeren kannst aber da mußt du dich hier durchs forum wühlen weil das teil so nicht klappen wird

rene_1992
04.05.2014, 20:41
Hier hast du die angepasst die ich damals bekommen hatte.
Diese läuft bei mir ohne Probleme auf dem System: Vmsone 2.4



<?
// VMS-Addon: db_optimize v2.1
// COPYRIGHT BY - SEBASTIAN HOINKES -
// Weitergabe nur unveraendert erlaubt!
//
// Cron zum optimieren aller Tabellen der Datenbank, welche sich in der
// Datenbank befinden, die loeschung unnoetiger und abgelaufener IP-Sperren,
// die Bereinigung der User-Datenbank (sperren inaktiver User), loeschen ungueltiger
// und abgelaufenen Paidmails und deren Eintraege, sowie leeren der Buchungs-Tabelle.


// Am NAchfolgenden Abschnitt ggf. Einstellungen vornehmen
$buchlimit = '10'; // Buchungen welche aelter als XX Tage sind, aus Datenbank loeschen.
$inaktivlimit = '60'; // Wenn User laenger als XX Tage inaktiv ist, wird er mit Hinweis gesperrt (Wengier als 10 Tage nicht möglich!).
$sperrhinweis = 'Account wegen inaktivit&auml;t gesperrt! Bitte an den Support wenden!'; // Sperrhinweis bei Inaktivitaets-Sperrung!


// Die Funktionsdatei einbinden
@require_once ('../lib/functions.lib.php');


// Zur Datenbank verbinden
db_connect();


// Ungueltige Reload-Sperren loeschen
db_query ("DELETE FROM ´vms_reloads´ WHERE bis <= ".(time()));


// Tabellenanzahl und IDs auslesen
$result = mysql_list_tables($db_base);
$menge = mysql_num_rows($result);
for($x=0;$x<$menge;$x++){


// Tabellennamen holen
$table_name = mysql_tablename($result,$x);


// Tabelle optimieren
db_query ("OPTIMIZE TABLE `".$table_name."`");
}


// Zeit setzen
db_query ("UPDATE ".$db_prefix."_crons SET laufzeit = '".time()."' WHERE bezeichnung = 'Datenbank optimieren'");


// User, welche ueber 30 Tage inaktiv, sperren mit Hinweis
if($inaktivlimit < 10) { $inaktivlimit = 10; }
db_query ("UPDATE ".$db_prefix."_kontodaten SET status = 2, hinweis = '".$sperrhinweis."' WHERE last_active < ".(time()-($inaktivlimit*86400))." AND last_active > 0");


// Buchungen loeschen aud DB, wenn diese aelter als xx Tage sind
db_query ("DELETE FROM ".$db_prefix."_buchungen WHERE buchungszeit < ".(time()-($buchlimit*86400)));


// Alle ungueltigen Paidmails und deren Eintraege loeschen
db_query ("DELETE FROM ".$db_prefix."_paidmails_empfaenger WHERE gueltig < ".time());
db_query ("DELETE FROM ".$db_prefix."_paidmails_versendet WHERE gueltig < ".time());


db_close();
echo 'Dieser Cronjob stammt von Sebastian Hoinkes ';
echo '- <a href="http://www.cash4more.de'; echo '" target="_blank">www.Cash4more.de</a><br />';
die('<font color="green">Cron erfolgreich gelaufen!</font>');
?>

Cojack
04.05.2014, 21:38
Hi

Thx für die Antwort. So den DB Optimierer hab ich versucht aber die Seite bleibt weiss und die Einträge die gleichen.

@rene_1992 ja es sind auch Autosurfkamps mit drin.

Der DB Optimierer wäre schon cool.

DJschatz27
04.05.2014, 23:54
<?php
// VMS-Addon: db_optimize v2.1
// COPYRIGHT BY - SEBASTIAN HOINKES -
// Weitergabe nur unveraendert erlaubt!
//
// Cron zum optimieren aller Tabellen der Datenbank, welche sich in der
// Datenbank befinden, die loeschung unnoetiger und abgelaufener IP-Sperren,
// die Bereinigung der User-Datenbank (sperren inaktiver User), loeschen ungueltiger
// und abgelaufenen Paidmails und deren Eintraege, sowie leeren der Buchungs-Tabelle.


// Am NAchfolgenden Abschnitt ggf. Einstellungen vornehmen
$buchlimit = '10'; // Buchungen welche aelter als XX Tage sind, aus Datenbank loeschen.
$inaktivlimit = '60'; // Wenn User laenger als XX Tage inaktiv ist, wird er mit Hinweis gesperrt (Wengier als 10 Tage nicht möglich!).
$sperrhinweis = 'Account wegen inaktivit&auml;t gesperrt! Bitte an den Support wenden!'; // Sperrhinweis bei Inaktivitaets-Sperrung!
$surfbuchungen = '30'; // Surf-Buchungen löschen

// Ungueltige Reload-Sperren loeschen
db_query ("DELETE FROM ´vms_reloads´ WHERE bis <= ".(time()));


// Tabellenanzahl und IDs auslesen
$result = mysql_list_tables($db_base);
$menge = mysql_num_rows($result);
for($x=0;$x<$menge;$x++){


// Tabellennamen holen
$table_name = mysql_tablename($result,$x);


// Tabelle optimieren
db_query ("OPTIMIZE TABLE `".$table_name."`");
}


// Zeit setzen
db_query ("UPDATE ".$db_prefix."_crons SET laufzeit = '".time()."' WHERE bezeichnung = 'Datenbank optimieren'");


// User, welche ueber 30 Tage inaktiv, sperren mit Hinweis
if($inaktivlimit < 10) { $inaktivlimit = 10; }
db_query ("UPDATE ".$db_prefix."_kontodaten SET status = 2, hinweis = '".$sperrhinweis."' WHERE last_active < ".(time()-($inaktivlimit*86400))." AND last_active > 0");


// Buchungen loeschen aud DB, wenn diese aelter als xx Tage sind
db_query ("DELETE FROM ".$db_prefix."_buchungen WHERE buchungszeit < ".(time()-($buchlimit*86400)));

// Surf-Buchungen loeschen aud DB, wenn diese aelter als xx Tage sind
db_query ("DELETE FROM vms_surfbuchungen WHERE buchungszeit < ".(time()-($surfbuchungen*86400))); So kannst du es machen
db_query ("DELETE FROM ".$db_prefix."_surfbuchungen WHERE buchungszeit < ".(time()-($surfbuchungen*86400))); oder so

// Alle ungueltigen Paidmails und deren Eintraege loeschen
db_query ("DELETE FROM ".$db_prefix."_paidmails_empfaenger WHERE gueltig < ".time());
db_query ("DELETE FROM ".$db_prefix."_paidmails_versendet WHERE gueltig < ".time());


db_close();
echo 'Dieser Cronjob stammt von Sebastian Hoinkes ';
echo '- <a href="http://www.cash4more.de'; echo '" target="_blank">www.Cash4more.de</a><br />';
die('<font color="green">Cron erfolgreich gelaufen!</font>');
?>


Versuchs Bitte mal so und falls du etwas erweitern magst hab ich dir mal ein beispiel rein gemacht

zu finden unter Surf-Buchungen loeschen

Hoffe das bekomst so hin
nur denk dran das du die Tabellen namen an deine in der db anpasst
(vms_surfbuchungen) (".$db_prefix."_surfbuchungen) ($surfbuchungen)

Cojack
05.05.2014, 00:26
Hi

supi jetzt hat das gefunzt auch ohne den Zusatz mit der Surfbar DIKES FETTES THX :-)

DJschatz27
05.05.2014, 01:07
Bitte sehr man hilft eben