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.
Vielen Dank
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
Kommentar