Hi,
meine Datenbank ist inzwischen ca 500mb groß, ich würde gerne meine db etwas verkleinern und die IP speicherung nimmt sicher auch einige mb.
Natürlich will ich die speicherung der IP adressen nicht deaktivieren, sondern nur alte logs löschen.
Weiß jemand einen SQL befehl dafür?
danke schonmal für eure antworten!
Hast du schon bei der Wartung im SMF Admincenter nachgeschaut? Da kannst du ordentlich aufräumen... Achja, und falls du ein Debian-System hast (so wie ich), ist eventuell dein Session-Table übervoll :D Wie man das behben kann, wurde hier im Forum (http://www.simplemachines.org/community/index.php?topic=211513.0) besprochen.
Ansonsten... die IPs werden werden höchswahrscheinlich mit den Beiträgen gespeichert, und zwar als Long. Ein Long-Wert nimmt aber immer gleich viel platz ein, egal ob da eine IP steht oder nicht. Zusätzlich werden im Benutzerprofil (AFAIK) 2 verschiedene IPs noch mitgespeichert. Die kannst du aber aus besagtem Grund nicht "verkleinern" oder löschen.
danke für deine antwort,
ich optimiere alle 2-3 tage alle tabellen und leere ebenfalls die sessions, aber ich verwende freebsd.
also ist es nicht möglich alte ip adressen aus den tabellen zu löschen?
mfg
Es ist möglich, aber es bringt keinen Platzgewinn.
wenn ich mir meine datenbank ansehe, dann sehe ich doch alle ip adressen... wenn ich die lösche, dann sollte die db doch kleiner werden?
kannst du mir sagen wie ich das mache? vl. bringt es ja doch das eine oder andere mb
Du scheinst nicht so ganz zu verstehen, wie eine Datenbank funktioniert. IPs kann man in sogannte Long-Werte (Long ist ein Datentyp in der EDV, meist 32bit lang) umwandeln. Jede IP kann dadurch eine Zahl repräsentiert werden. Zahlen werden aber nicht als Text gespeichert, sondern in Binärschreibweise - Die belegt immer 32 bit (4 Byte), egal, ob da nun 0, 999 oder 999999999 steht.
Wenn du so eine Mega Datenbank hast, würde ich mal die smf_log_errors kontrollieren ob diese nicht überfüllt ist. Ansonsten einfach mal mit phpmyadmin prüfen welche Tabellen den so große werte haben und die her nennen, dann kann man dir auch genau sagen welche du leeren könntest um speicher einzusparen...
!! Wichtig !! immer nur leeren niemals Löschen... sonst gibts nur fehler und ggf. geht das Board nicht mehr.
Lainaus käyttäjältä: _Jojo_ - maaliskuu 14, 2008, 09:10:56 IP
Du scheinst nicht so ganz zu verstehen, wie eine Datenbank funktioniert. IPs kann man in sogannte Long-Werte (Long ist ein Datentyp in der EDV, meist 32bit lang) umwandeln. Jede IP kann dadurch eine Zahl repräsentiert werden. Zahlen werden aber nicht als Text gespeichert, sondern in Binärschreibweise - Die belegt immer 32 bit (4 Byte), egal, ob da nun 0, 999 oder 999999999 steht.
Das is mir schon klar.
Ich will ja, dass alte IP adresse gelöscht werden - zb. es sind von einem User 300 IP Adressen gespeichert. Wenn ich nun alle löschen würde (nicht ersetzen mit irgendetwas), wäre die DB doch kleiner...
Lainaus käyttäjältä: master2oo8 - maaliskuu 15, 2008, 09:53:45 IP
Das is mir schon klar.
Ich will ja, dass alte IP adresse gelöscht werden - zb. es sind von einem User 300 IP Adressen gespeichert. Wenn ich nun alle löschen würde (nicht ersetzen mit irgendetwas), wäre die DB doch kleiner...
Das bringt dir aber keinen Platzersparnis, da die Zeile mit den IP´s gelöscht werden müsste um platz einzusparen, dann würde aber das Forum nicht mehr Funktionieren. Und wenn du die IP´s mit zb. der Zahl 0 raus wirfst, dann ändert sich die Größe der Tabellen trotzdem nicht. Eben wie schon _Jojo_ beschreiben hat. Mit IP´s löschen sparst du keinen Platz ein.
Vielleicht verstehst du nicht ganz, wie die Datenbank aufgebaut ist, wenn du verstehst, dass eine Zahl immer gleich groß ist... Also: Es gibt keine "IP-Sammeltabelle", es gibt nur eine IP-Spalte in der Beitrags-Tabelle und es gibt noch 2 andere IP-Felder im Benutzerprofil. Und wenn du die IPs eines Benutzers dir anschaust, dann sind das eben die IPs von den Beiträgen und die aus dem Profil.