"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

mysql: insert und nachher optimize

kleinerChemiker 01.02.2005 - 09:20 475 2
Posts

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4281
ich hab ein php skript, das wird einmal täglich ausgeführt. es schreibt einiges in eine mysql-db. da das eben nur einmal täglich geschieht und dannach nur noch daraus gelesen wird, dachte ich mir, mach ich dannach ein optimze. denn wenn ich nach dem insert mir die kardinalität vor und nach einem optimize anschaue, stell ich fest, daß daß sie nachher wesentlich kleiner ist. mein problem ist nun, daß ich das optimize zwar ausführe, aber die tabels scheinbar nicht optimiert werden. die kardinalität ist immer noch zu hoch und wenn ich etwas später optimize von hand aus mache (phpmyadmin) dann stimmt die kardinalität wieder. hab mir gedacht, vielleicht braucht mysql zu lange um die daten zu schreiben und deshalb sogar ein sleep(10) eingefügt, bringt aber gar nix.

das ist das ende vom skript:
Code: PHP
mysql_query($query);
sleep(10);
mysql_query('OPTIMIZE TABLE `sphere_account`, `sphere_chars`, `sphere_haeuser`');
?>

was kann ich machen, daß optimize funzt?

tia

MIK

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
1. das sleep bringt nix, weil die mysql-funktionen auf mysql "warten". dh PHP wird erst weiter ausgeführt wenn der query abgeschlossen ist

2. Wenn du in einer Table NIE etwas löschst oder felder editierst, so wirst du kaum einen optimize benötigen (vielleicht einmal pro Jahr oder so :p).
2a. Wenn du in einer FIXED Table Einträge löscht, oder Felder mit FIXER Länge (Alles ausser varchar, blob und text) editierst brauchst du nur SELTEN nen optimize (Vielleicht einmal pro Woche)

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4281
aber warum wird dann mit phpmyadmin vor und nach dem optimize bei den schlüsseln eine unterschiedliche kardinalität angezeigt?
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz