Hallo zusammen,
habe neulich ein Addon gesehen womit sich die Datenbank optimieren lässt. Denkt ihr ich würde es nochmal finden?
Wäre lieb wenn ihr mir da weiter helfen könntet.
Gruß
Arctica
Druckbare Version
Hallo zusammen,
habe neulich ein Addon gesehen womit sich die Datenbank optimieren lässt. Denkt ihr ich würde es nochmal finden?
Wäre lieb wenn ihr mir da weiter helfen könntet.
Gruß
Arctica
Über 5 Jahre ist es her ... Oje ... Wird ja wirklich mal Zeit für ne neue VMS-Version :biggrin1:
Tachchen ist die datei denn überhaupt noch Aktuell fürs VMS 1,2 empfehlenswert oder schon veraltet?
EDIT: Hab eben das DB Optimize 2 instaliert in phpadmin den code eingegeben abe rden cron kann man nicht starten und muß ich änderungen in der db_optimize.php machen weil ich bin mir nicht sicher was genau
Sobald die Seite ein paar Slots und Addons drin hat, wird die Datenbankoptimierung eh immer zum "Spezialfall".
Da wird kaum jemand ein geeignetes Addon für schreiben können, da es selbst mit alten Logeinträgen löschen und alle Tabellen "optimieren" (MySQL) nicht getan ist.
Das sollten aber diese Crons tun im DL Bereich, hab sie mir nicht konkret angeschaut, aber im Grundskript sind das ja nur buchungsliste und reloads und die Tabellen für den Mailversand.
Alles weitere kommt ja individuell dazu, sei es nun die Gamebuchungsliste, Logtabellen für die Spiele oder spezielle Tabellen für angepasste Mailer etc.
Die Dateien sind so noch fürs VMS 1.1, Anleitung zum Umbau auf 1.2 sollten sich finden lassen hier im Forum :wink:
Ich persönlich sehe das so, dass die Optimierung eh nur einen Sinn hat, wenn man weis, was man da tut, bzw. jemanden dafür engagiert, dass der das für den Spezialfall einrichtet. Daher sehe ich keinen sinnvollen Bedarf an einem fertigen Addon für diesen Fall. Klar sehen das einige Webbis anders, die wollen einen Knopf wo sie drücken können und dann dasteht: "Datenbank voll optimiert", dann sind sie beruhigt, auch wenns effektiv kaum was gebracht hat :biggrin1:
na wenn das so ist das es nichts bring brauch man das ja auch nicht und ich hab ja nur ne reine klickseite also ist so ein programm nicht sinnvoll aber danke für die info
Na wenn es da ein codeschnippsel gibt der funzt dann schon aber hab keine sorge das es dunkel bleibt!
Weil ich hab das DB Optimize 2 instaliert funzt aber nicht und weider raus geschmißen
jpwfour is das mal witzig wenn ich hier was suche muß ich lange suchen und hab momentan keine lust was zu suchen also bleibt es erstmal so wie es ist weil wenn ich was suche das stichwort eingebe und weiß das gibt es hier finde ich leider nichts
Danke für den Tip aber will nicht naja dann muß ich eben warten bis was anderes da ist
Viel Spaß beim warten.
Das Addon von mir ist 5 Jahre alt, und die Änderung dauert vllt 1 Minute ;-).
Irgendwann wird dein Reload überlaufen :yes:
Lange Rede, kurzer Sinn: Richtige DB-Optimierung ist das Addon nicht, aber entlastet die DB wenigstens etwas, also doch sinnvoll.
haha ich hab keine ahnung von änderungen mit den sachen bräuchte shon hilfe dabei bin ja kein progger der sowas aus dem hangelenk macht sonst würd ich ja nicht immer fragen müßen
aber das mit dem teil funzt nicht weil ich nicht weiß was ich wie und wo machen muß
So hab mich hier im Forum noch mal durchgewüllt und bin fündig geworden
jetzt funktionierts zwar etwas umständlich mit obtimieren weil im admin der cron nicht sichtbar ist unter crons aber habs anders gelöst und noch eine frage muß ich hier bei dem teil wo xx steht was eintragen oder das was ich möchte hier>> '20'<< eintragen ??
$buchlimit = '20'; // Buchungen welche aelter als XX Tage sind, aus Datenbank loeschen.
Und wäre gut wenn die DB Optimize 2 mal auf den aktuellen stand gebracht wird weil ich hab die jetzt anders als die man aus dem downloadbereich downloaden kann
Und Nochmal an alle Danke für die hilfreichen aussagen und Tipps
Danke für den Tip dann weiß ich ja bescheid und kann frage wenn ich die buchungen bonuspoints noch hinzufügen möchte muß ich das dann so machen
// Buchungen loeschen aud DB, wenn diese aelter als xx Tage sind
db_query ("DELETE FROM ".$db_prefix."_buchungen_bonuspoints WHERE buchungszeit < ".(time()-($buchlimit*86400)));
und muß ich hier noch eine anlegen oder reicht die eine buchlimit
// Am NAchfolgenden Abschnitt ggf. Einstellungen vornehmen
$buchlimit = '20'; // Buchungen welche aelter als XX Tage sind, aus Datenbank loeschen.
und kann man noch was sinvolles einfügen???
Hab da auch mal eine frage zu. Das hier kommt in die DB, das habe ich jetzt so mal zusammengebastelt, ich hoffe das dass so stimmt.
Dann kann ich ja den Cron starten, aber da passiert nichts. Also alle alten einträge und co. sind noch vorhanden. Was mir nun aufgefallen ist, ist das der Cron keine Laufzeit hat, kann es daran liegen? Wenn ja, was wird da in die Laufzeit eingetragen?Code:INSERT INTO `vms_crons` ( `cron` , `laufzeit` , `datei` , `bezeichnung` )
VALUES ('ext_cron', '0', 'crons/db_optimize.php', 'Datenbank optimieren');
Folgendes wird mir auch nicht angezeigt:
Benutze die V.2 für Vms 1.2 und habe das Vms 1.2.4 am laufen.Code: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>');
Dein Cron hat ja '0' als Laufzeit, und ist prinzipiell Jacke wie Hose. Wenn der Cron das erste mal richtig gelaufen ist, gibts auch einen Eintrag bei der Laufzeit.
Man müsste mal den Cron an sich sehen bzw. den Inhalt, um die Ursache zu sehen, weshalb er nicht läuft.
Dein "Copyright", ist da nicht hilfreich^^
LG
Das ist der Cron..PHP-Code:
<?
// 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 = '30'; // Buchungen welche aelter als XX Tage sind, aus Datenbank loeschen.
$inaktivlimit = '364'; // Wenn User laenger als XX Tage inaktiv ist, wird er mit Hinweis gesperrt (Wengier als 10 Tage nicht möglich!).
$sperrhinweis = 'Account wegen inaktivitä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>');
?>
Der von dir verwendete Cron klappt so mit dem VMS1.2 nicht.
Es müssen ein paar Sachen entfernt werden.
Einfach mal Suche benutzen, wenn nicht slebst in diesem Threat hier die Lösung verlinkt ist.
JP hatte letztens die korrekte Änderung gepostet.
MfG
hi,
du musst aus dem Cron folgendes raus machen
// Die Funktionsdatei einbinden
@require_once ('../lib/functions.lib.php');
db_connect();
und
db_close();
Danach sollte dein Cron laufen
Mfg
Eine frage wäre es möglich bei
ein datum mit einzufügen wo man genau sieht wann ein usr gesperrt wurde????PHP-Code:
// User, welche ueber 90 Tage inaktiv, sperren mit Hinweis
if($inaktivlimit < 10) { $inaktivlimit = 90; }
db_query ("UPDATE ".$db_prefix."_kontodaten SET status = 2, hinweis = '".$sperrhinweis."' WHERE last_active < ".(time()-($inaktivlimit*86400))." AND last_active > 0");
Die Zeile:
bearbeiten, bspw.so:PHP-Code:
$sperrhinweis = 'Account wegen inaktivität gesperrt! Bitte an den Support wenden!'; // Sperrhinweis bei Inaktivitaets-Sperrung!
PHP-Code:
$sperrhinweis = 'Account wegen inaktivität am '.date('d.m.y').' um '.date('H:i:s').' gesperrt! Bitte an den Support wenden!'; // Sperrhinweis bei Inaktivitaets-Sperrung!
jpwfour
Ich Danke dir dafür
Ich hätte noch eine frage
und zwar ist es möglich oder sinnvoll die vms_gebuchte_werbung Tabelle auch per cron zu
verkleinern ????
In wie fern verkleinern? Werbung die abgelaufen ist wird doch durch die interface gelöscht :suspicious:
in der db sind so viel gebuchte werbungen drin und ich würd da gerne einmal täglich die liste verkleinern weiß nicht ob das sinvoll ist weil die momentan über 18000 einträge hat wird immer größer nicht kleiner
Sofern man sie verkleinern kann, evtl. sind es ja alles genutze Einträge?
Es kann sein, dass ein Cron abgelaufene Kampagnen nicht richtig löscht, oder bei dir viele Kampagnen auf der Backlist landen, die bleiben afaik für immer drin.
Da man aber nicht feststellen kann, wann sie auf die Blacklist gesetzt wurden, kann man auch nur schwer entscheiden, wann man solche Einträge löscht....
Das sollte man also höchstens 1x / Monat machen
Und danach sich auf viele Framebrecher Meldung etc einstellen, die alle schonmal gemeldet wurden :wink:Code:DELETE FROM vms_gebuchte_werbung WHERE status=2
Wenn man ein WMS drin hat, sind die Daten in der Tabelle ja noch etwas "sensibler", dann am besten gar nicht.
Evtl. kann man auch alle Kampagnen mit menge=0 löschen, könnte ja sein das ein Cron solche trotzdem noch einbucht. Aber auch wieder kritisch mit WMS, die User sollen ja auch abgelaufene Kampagnen nachbuchen können.
-> Am besten die Optimierung hier sein lassen, wenn man nicht genau weis, was man im speziell für die eigene Seite zugeschnittenen Einzelfall tut!
oki dann weiß ich bescheid weil sowas muß man ja erst wissen
Dank für die Antwort
War hier gerade am rumbasteln, falls jemand für seine USA-Slots die Gamebuchungen per Cron optimieren möchte, hier der Schnippsel dazu:
nach
das hier einfügenPHP-Code:
// Buchungen loeschen aud DB, wenn diese aelter als xx Tage sind
db_query ("DELETE FROM ".$db_prefix."_buchungen WHERE buchungszeit < ".(time()-($buchlimit*86400)));
PHP-Code:
// Buchungen für USA-Slots (mit Cache) optimieren
db_query ("DELETE FROM universal_cache_log WHERE datum < ".(time()-($buchlimit*86400)));