Jump to content
InvisionCommunity.de - Der Deutsche Invision Community Support
Sign in to follow this  
zer0

DB automatisch optimieren?

Recommended Posts

Sers leut!

ich hab ein script, das die ganze DB optimiert!

Ist es irgendwie möglich, dieses script täglich laufen zu lassen?

z.B um 3 uhr nachts, weil da die DB fast nicht belastet wird....

also hier mal das scriptelchen:

<HTML>

<HEAD>

<TITLE></TITLE>

<style>

body,table{

font-size: 10px;

font-family: Arial;

}


.border{

border-width: 1px;

border-style: solid;

border-color: #000000;

}


tr.header{

background-color: #F8F5B6;

}

</style>

</HEAD>

<BODY>

<?php

$host = "localhost";

$user = "";

$pass = "";

$dbase = "";

$db = mysql_connect($host, $user, $pass) or die ("verbindung fehlgeschlagen");

    mysql_select_db($dbase, $db) or die ("verbindung zur datenbank fehlgeschlagen");

$sql = "show tables";

$r_sql = mysql_query($sql,$db);

if($r_sql){

echo "<table cellspacing=\"0\" cellpadding=\"0\" width=\"80%\" align=\"center\" class=\"border\"><tr><td>\n";

echo "<table cellspacing=\"0\" cellpadding=\"2\" width=\"100%\" align=\"center\" >\n";

echo "<tr class=\"header\"><td>Tabelle</td><td>Operation</td><td>Status</td><td>Operation</td><td>Status</td></tr>\n";

while($table = mysql_fetch_row($r_sql)){

$sql_o = "optimize table ".$table[0];

$r_sqlo = mysql_query($sql_o,$db);

$sql_c = "check table ".$table[0]." medium";

$r_sql_c = mysql_query($sql_c,$db);

if($r_sqlo){

 $msg_o = mysql_fetch_array($r_sqlo);

 $msg_c = mysql_fetch_array($r_sql_c);

 if($msg_o['Msg_text'] == "Table is already up to date"){ $color = "#CAF9AE"; }

 if($msg_o['Msg_text'] == "OK"){ $color = "#63EB66"; }

 if($msg_o['Msg_text'] == "The handler for the table doesn't support check/repair"){ $color = "#F21C1C"; }

 echo "<tr bgcolor=\"".$color."\"><td width=\"20%\" nowrap>".$table[0]."</td><td width=\"20%\" nowrap>".$msg_c[Op]."</td><td width=\"20%\" nowrap>".$msg_c[Msg_text]."</td><td width=\"20%\" nowrap>".$msg_o[Op]."</td><td width=\"20%\" nowrap>".$msg_o[Msg_text]."</td></tr>\n";

}

}

echo "</table>\n";

}

?>

</BODY>

</HTML>

der User, den pass und der DB-name muss man noch eintragen ;)

also nochma: geht das irgendwie automatisch? sicherlich geht das, aber wie ;)

danke schonmal

Share this post


Link to post

Dritte Alternative, die allerdings ein IPB2 voraussetzt (und da weiß ich nicht, was Du hast), wäre, das ganze so umzubasteln, daß es task-tauglich ist und denn eben über dieses System laufen zu lassen.

Hah, keine schlechte Idee übrigens - danke für die Anregung, warum bin ich da eigentlich auch noch nicht von selber drauf gekommen... *patsch*

Share this post


Link to post

also erstmal danke!

taugt das script denn was? bzw was macht es genau?
es führt halt die operation "optimize table" aus.... das bereinigt einwenig die tabellen in der DB... optional kann man das auch in phpmyadmin machen... nur geht das mir persönlich zu lange und die zeit dafür hab ich auch nicht...
*nicht ganz recht geb*


Unter http://wecker.home-spyder.de gibt es so etwas z.B.
hmmm sehr gute idee :) mein hoster erlaubt leider keine cronjobs, darum: PERFEKT :D ich werde mir mal den service anschauen! danke
Hah, keine schlechte Idee übrigens - danke für die Anregung, warum bin ich da eigentlich auch noch nicht von selber drauf gekommen... *patsch*

hehe, hätte eigentlich auch früher drauf kommen können... :)

Share this post


Link to post

Noch eine Alternative, die ich zufällig entdeckt habe

URL-Send! 1.0

Beschreibung:  URL-Send! ist ein kleines Tool für Homepage- oder Serverbetreiber die in bestimmten Zeitabständen eine bestimmte Scriptaktion auf ihrem Server oder ihrer Homepage ausführen müssen. Leider sind diese so genannte Cronjobs bei fast allen Anbietern nur als Aufpreis erhältlich. Mit URL-Send! haben wir Abhilfe geschaffen!

Betriebssystem:  Win 95/98/Me/XP/NT/2000

Lizenz:  Freeware

Share this post


Link to post

Das Tool ist auch nicht uninteressant.. ;):)

Das script selbst natürlich ist auch praktisch; ich wollte gerade fragen, was genau ein "optoimize table" macht:

OPTIMIZE TABLE sollte benutzt werden, wenn Sie große Teile der Tabelle gelöscht haben oder bei Tabellen mit Zeilen variabler Länge viele Änderungen durchgeführt haben.

..

Sie können OPTIMIZE TABLE benutzen, um unbenutzten Platz freizugeben und die Daten-Datei zu defragmentieren.

Also ähnlich dem Defragmentieren der Festplatte..? Und ist es dann wirklich sinnvoll/gut, das z.B. täglich zu machen? ("gut" im Sinne von: kann die Tabelle Schaden nehmen, wenn das script z.B. nicht vollständig ausgeführt wird)

mfg,

Tom

Share this post


Link to post

Täglich würde ich es nicht unbedingt machen, da es nicht viel bringt. Bei einem Backupscript, was ich vor langer Zeit mal geschrieben habe und täglich ein Backup erstellt, wird eine Optimierung einmal pro Woche angestoßen und die Statistik per Mail zugesendet. Dies hat gezeigt, das bei normaler Forenbenutzung die Optimierung nicht sonderlich oft gemacht werden muß. Sollte jedoch im Forum mal aufgeräumt werden, spricht viele alte Themen gelöscht werden, dann sollte man eine Optimierung mal anstoßen. Dies gilt natürlich auch bei Löschung von PMs und Beiträgen..

Bei einem Forum mit knapp 35 MB Datenbestand, eine Löschaktion von etwa 1000 Beiträgen und anschließender Optimierung wurde ein Überhang von knapp 3 MB entfernt. Dies nur so als Info.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×