Mastershrimp: Ständiges Optimieren empfehlenswert?

Heyho!

Ich habe mir neulich ein Vote-Script gebastelt und verwende innerhalb dieses Scripts eine IP-Sperre. Diese IP-Sperre trägt die IP's der User in eine Mysql-Datenbank-Tabelle und löscht sie nach 90 Minuten wieder. Es wird also ständig etwas geschrieben und gelöscht, was zu Folge hat, dass ich oft einen Überhang habe.
Diesen kann man ja durch eine Optimierung entfernen. Sollte ich nun also nach _jedem_ Löschvorgang in der Tabelle diese optimieren oder hat das irgendwelche Nachteile?

Die Tabelle wird nie sehr groß, höchstens ein paar 100 Byte, da die IP's ja ständig wieder gelöscht werden - die Prozessorauslastung ist also quasi = 0, oder?

Hat eine Optimierung irgendwelche Nachteile? Ist sie bei großen Tabellen sehr prozessor-auslastend? Wenn ja, was ist für euch "groß"?

Danke schonmal für eure Antworten!

Chapeau! ;)

Mastershrimp

--
Kämpft für die Rettung von dem Genitiv!
  1. Hi,

    löscht sie nach 90 Minuten wieder. Es wird also ständig etwas geschrieben und gelöscht

    Mit CronJobs? Oder wenn jemand abstimmt? Oder immer, wenn jemand deine Seite besucht?

    Diesen kann man ja durch eine Optimierung entfernen. Sollte ich nun also nach _jedem_ Löschvorgang in der Tabelle diese optimieren oder hat das irgendwelche Nachteile?

    Optimiere die Menge der Löschvorgänge, dann kannst du die Tabelle jedes mal optimieren (wobei sich das dann weniger lohnt, wenn größere Blöcke gleichzeitig gelöscht werden)...

    Wenn ja, was ist für euch "groß"?

    1 Terrabyte ;)
    Dein Server dürfte aber schon eher Probleme kriegen

    E7

    1. Heyho!

      Mit CronJobs? Oder wenn jemand abstimmt? Oder immer, wenn jemand deine Seite besucht?

      Immer wenn jemand abstimmt wird die IP-Tabelle geleert und immer wenn jemand die Vote-Seite betritt werden alte Votes entfernt (natürlich nur sofern vorhanden).

      Stärker optimieren kann man's glaub ich nicht, oder?

      Und bei den geringen Datenmengen ist das eh kein Problem, schätz ich mal.

      Wollte halt nur wissen, ob es ausser Performance-Einbußen auch noch andere Nachteile gibt. Scheinbar aber ja nicht, oder?

      Chapeau! ;)

      Mastershrimp

      --
      Kämpft für die Rettung von dem Genitiv!
      1. Hi,

        Wollte halt nur wissen, ob es ausser Performance-Einbußen auch noch andere Nachteile gibt. Scheinbar aber ja nicht, oder?

        Du musst beim Programmieren eigentlich an nix denken außer an die Geschwindigkeit und an den Speicherplatz (RAM/Festplatte).

        An deiner Stelle würde ich aber das Entfernen der alten Votes >90 Minuten vor dem Abstimmen durchführen - wenn jemand die Seite aufruft, gibt's meistens nix zum Löschen.

        E7

        1. Heyho!

          An deiner Stelle würde ich aber das Entfernen der alten Votes >90 Minuten vor dem Abstimmen durchführen - wenn jemand die Seite aufruft, gibt's meistens nix zum Löschen.

          Hmm. Verstehe ich gerade irgendwie nicht...

          Das Script arbeitet so:

          1. Laufende Votes werden zuerst ausgegeben. Bei diesen Votes kann man seine Stimme abgeben.
          2. Abgelaufene Votes werden unterhalb der laufenden Votes angezeigt. Man kann dort (natürlich) nicht abstimmen, sondern bekommt nur die Ergebnisse angezeigt
          3. Dort verweilen die Votes eine bestimmte Zeit, bis sie dann endgültig gelöscht werden.

          Und jedes Mal wenn die Seite aufgerufen wird, wird geprüft, ob einer der abgeschlossenen Votes zu alt ist und somit gelöscht werden muss.

          Wo ließe sich da was optimieren?
          Wenn lediglich beim Abgeben der Stimme überprüft wird, ob einer der alten Votes _zu_ alt ist, würden ja evtl. die zu alten Votes noch ein paar Tage existieren (weil vllt. keiner in diesen Tagen votet, oder so)

          Chapeau! ;)

          Mastershrimp

          --
          Kämpft für die Rettung von dem Genitiv!
          1. Nachtrag: Es wird natürlich nur dann optimiert, wenn auch etwas gelöscht wurde. Also nicht bei jedem Seitenaufruf.

            Chapeau! ;)

            Mastershrimp

            --
            Kämpft für die Rettung von dem Genitiv!
          2. Hi,

            Wenn lediglich beim Abgeben der Stimme überprüft wird, ob einer der alten Votes _zu_ alt ist, würden ja evtl. die zu alten Votes noch ein paar Tage existieren (weil vllt. keiner in diesen Tagen votet, oder so)

            Erweitere einfach die SQL-Abfrage um Abstimmung > time() + 90 oder so was

            E7

            1. Heyho!

              Erweitere einfach die SQL-Abfrage um Abstimmung > time() + 90 oder so was

              Danke! Aber ich hab schon eine gute Möglichkeit gefunden, zu überprüfen, ob ein Vote abgelaufen ist.

              In diesem Thread ging es ja nur darum, ob man nach jedem Löschvorgang Optimieren sollte, oder ob das irgendwelche Nachteile hat.

              Hat's aber für mich nicht (so wie ich das verstanden habe)

              Chapeau! ;)

              Mastershrimp

              --
              Kämpft für die Rettung von dem Genitiv!
              1. Hallo Mastershrimp,

                In diesem Thread ging es ja nur darum, ob man nach jedem Löschvorgang
                Optimieren sollte, oder ob das irgendwelche Nachteile hat.

                Das bringt eh nichts. Diese Optimize-Geschichten reparieren den Index
                von MySQL nicht richtig. Wenn du dir Sorgen um den Index machst, dann
                droppe ihn einmal und lege ihn neu an.

                Grüße,
                 CK

                --
                Mit einem Windhauch kannst du das Feuer loeschen. Mit einem Windhauch kannst du das Feuer entfachen.
                http://wwwtech.de/
                1. Es geht eigentlich nur um den Überhang. Und den müsste man per Optimierung wegkriegen, oder?

                  Sagt PHPMyAdmin zumindest.

                  Chapeau! ;)

                  Mastershrimp

                  --
                  Kämpft für die Rettung von dem Genitiv!
  2. Sup!

    Schon weil es heutzutage soviele NATs gibt, sind IP-Sperren nicht so toll. Cookies sind IMHO besser, wenn auch auch nicht wirklich sicher.
    Besser wäre vielleicht, wenn man beim Voten immer irgendein Wort aus einer (verzerrten) Grafik in ein Textfeld eintragen und abschicken muss, um Voten per Skript zu verhindern. Oder so.

    Gruesse,

    Bio

    --
    Und er laechelt, denn er weiss: Das Boese siegt immer!
    1. Schon weil es heutzutage soviele NATs gibt, sind IP-Sperren nicht so toll. Cookies sind IMHO besser, wenn auch auch nicht wirklich sicher.
      Besser wäre vielleicht, wenn man beim Voten immer irgendein Wort aus einer (verzerrten) Grafik in ein Textfeld eintragen und abschicken muss, um Voten per Skript zu verhindern. Oder so.

      Hast zwar eigentlich Recht, aber mir sind IP's wesentlich lieber. Die paar Leute, die bei mir voten, werden das überleben.

      Cookies sind wirklich zu umständlich und unsicher.
      Und das mit dem Eingeben eines Codes ist zwar gut gegen Scripts, aber nicht gut gegen menschliche Super-Voter. Meine User haben größtenteils keine Ahnung, was überhaupt ein Script ist ;) und würden deshalb eher 5x diesen Code eingeben.

      Ich glaube so ist das ganz gut gelöst.

      Chapeau! ;)

      Mastershrimp

      --
      Kämpft für die Rettung von dem Genitiv!