Hallo,
gerade bin ich dabei ein neues Projekt zu planen.
Bei diesem Projekt soll gleich von Anfang an auf die MySQL Engine InnoDB gesetzt werden.
Hierbei ergibt sich allerdings ein Problem mit den COUNTs die ja unter InnoDB wesentlich langsamer sind als unter MyISAM.
Jetzt stellt sich mir die Frage ob folgendes nicht eine sinnvolle Möglichkeit wäre dieses Defizit durch folgende Schritte auszugleichen:
Szenario: Ich möchte die Anzahl aller User die älter als 18 Jahre sind.
1. SELECT uid FROM users WHERE user_age > 18
2. alle zurückgelieferten user ids werden in ein array gepackt
3. ein count() auf dieses Array
Ist das jetzt totaler Schwachfug?
Oder gibts eine bessere Methode Counts performant auf einer InnoDB, ohne einen extra Zähler in der Datenbank mitlaufen zu lassen, umzusetzen?
Danke und Gruß
slimer
gerade bin ich dabei ein neues Projekt zu planen.
Bei diesem Projekt soll gleich von Anfang an auf die MySQL Engine InnoDB gesetzt werden.
Hierbei ergibt sich allerdings ein Problem mit den COUNTs die ja unter InnoDB wesentlich langsamer sind als unter MyISAM.
Jetzt stellt sich mir die Frage ob folgendes nicht eine sinnvolle Möglichkeit wäre dieses Defizit durch folgende Schritte auszugleichen:
Szenario: Ich möchte die Anzahl aller User die älter als 18 Jahre sind.
1. SELECT uid FROM users WHERE user_age > 18
2. alle zurückgelieferten user ids werden in ein array gepackt
3. ein count() auf dieses Array
Ist das jetzt totaler Schwachfug?
Oder gibts eine bessere Methode Counts performant auf einer InnoDB, ohne einen extra Zähler in der Datenbank mitlaufen zu lassen, umzusetzen?
Danke und Gruß
slimer
Kommentar