Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP bzw. mysql abfragen optimieren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP bzw. mysql abfragen optimieren

    Hallo,

    ich wollte mal Fragen ob ihr mir ggf. dabei helfen könnt meine Abfragen zu optimieren, ich selbst habe von Indexen gehört, von Explain and so on, aber in einem Zusammenhang der für mich nicht einleuchtent ist, auch habe ich hier ein Buch vor mir liegen, mit dem Thema "Mit Indizes arbeiten" eine Art PHP5 für Fortgeschrittenen Lehrbuch, aber viel weiter kom ich damit nicht. Und auch diverse andere möglichkeiten habe ich angelesen, wurden jedoch nicht genauer beschrieben.

    Wäre super nett wenn mir da jemand helfen könntet, also die Abfrage ist diese:

    PHP-Code:
    SELECT FROM $table2 WHERE typ='$typ' and checkor=0 ORDER BY sortdatum DESC LIMIT $showvon,$showbis 
    Also die Tabelle hat 1000 Einträge...

    Leider weiss ich nun auch nicht wie ich mir anzeigen lassen kann wie lang eine Abfrage dauert, aber bei hohen Besucher aufkommen, merkt man schon das die Abfragen enorm auf sich warten lassen. Und laut "htop" auf dem Server springt der mysql dienst auch mal fix an die Decke mit CPU Last bis zu 100% , bei nem Dual Core Xenon ...

    Danke an alle die sich dem annehmen und versuchen zu helfen!

    Gruß,
    Benni

  • #2
    Hallo Kori,

    erstmal solltest Du Bezeichner Deiner Abfrage in Backticks setzen. Ist einfach ordentlicher.
    An Deiner Abfrage würde mir nichts fraktal falsches auffallen, bis auf das SELECT *, wobei der Stern durch Feldbezeichner ersetzt werden sollte, deren Inhalte Du auch wirklich benötigst.
    An dieser Abfrage kannes meines erachtens definitiv nicht liegen, dass Dein Server in die Knie geht - 1000 Datensätze und dazu noch eine Pagination - das ist keine Last für eine Datenbank!

    Indizes sind dazu da, dass man Spalten, die "oft für Suchen verwendet werden", darauf auslegt, die Suche zu verschnellern. Darüber gibts genug im Net.

    Gruß

    Kommentar


    • #3
      1000 datensätze ist nichts.
      bei dieser Datensatzmenge kann sogar vorkommen, dass ein index von 'sortdatum' ein wenig die Geschwindigkeit erhöht, obwol bei so kleinen Tabellen kann manchmal Index sogar geschwindigkeit bremsen.
      also teste mal mit dem indexieren von 'typ' 'checkor' und 'sortdatum'.
      Slava
      http://bituniverse.com

      Kommentar


      • #4
        Naja nichts, kann sich schon lohnen nen Index drüber zu legen. Faustregel: Auf alle Spalten, nach denen du häufig suchst (WHERE) oder sortierst (ORDER BY).
        Das kann schon enorme Geschwindigkeitsvorteile bringen.

        Den Befehl kenn ich grad nicht auswendig, einfach mit phpMyAdmin auf den Blitz klicken

        Kommentar

        Lädt...
        X