Query optimieren

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

  • Query optimieren

    Hi, ich bin gerade dabei ein Paar Querys zu optimieren. Zumindest versuche ich das. Bei meiner Recherche bin ich auf einen
    dieser gestoßen der nicht gerade so aussieht als wäre dieser optimiert.

    Dies fragt aktuell die Geburtstage ab.

    Wenn ich mir mit dem Profiler diese Query ausgeben lasse,
    bekomme ich folgendes angezeigt.

    JOIN SIZE: 21032 Using Filesort:schlecht.

    Über Explain sagt er mir dann eben das er diese 21032 Zeilen durchsucht.
    Vielleicht ist es ja auch normal. Im Prinzip muss er ja die ganze Tabelle abklappern um die Geburtstage ausfindig zu machen.
    Aber vielleicht geht da ja doch noch was.

    id select_type table type possible_keys key key_len ref rows Extra
    1 SIMPLE comm_user range status status 62 NULL 21032 Using where; Using filesort


    Ich brauche eine kurze Hilfe, einen Denkanstoß um meine Querys zu optimieren. An diesem Beispiel wäre es mir schon eine große Hilfe.
    Ich hoffe ihr könnt helfen. Denn ich wüsste jetzt nicht wie ich die where Bedingung so anpasse das er nicht so viele Zeilen durchsucht.
    Code:
    SELECT 
    id, 
    gender, 
    username, 
    allow_viewonline, 
    floor((to_days(curdate())-to_days(birth_date))/365.25)  as age 
    
    FROM comm_user WHERE status in ('Aktiv', 'active') 
     and regdate >= 1388833875 
    ORDER BY regdate 
    DESC LIMIT 0,8
    Vielen Dank

  • #2
    Ich seh in deiner Abfrage keinen Join.

    Und wie kommst du auf die Idee, dass MySQL die Tabelle nach den Geburtstagen abklappern muss? Es werden natürlich nur die 8 Stück berechet, die auch ausgegeben werden. Alles andere wäre ja sinnlos.

    Kommentar


    • #3
      brauch ich denn unbedingt einen join für meine abfrage?
      nun ja, und er sagt ja auch, das er 21032 zeilen gelesen hat :/ check ich ned ganz

      Kommentar

      Lädt...
      X