InnoDB Count Alternative

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

  • InnoDB Count Alternative

    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

  • #2
    Re: InnoDB Count Alternative

    Original geschrieben von sLiMeR²³
    Ist das jetzt totaler Schwachfug?
    Ja. Das killt jegliche interne Netzwerkverbindung.

    http://forums.mysql.com/read.php?22,...6416#msg-56416
    ev. die Trigger-Lösung, aber das setzt auch auf eine extra Tabelle.

    Die extra Tabelle ist aber auf jeden Fall besser als alle Rows selecten und php zählen lassen, da kannst du auch gleich ein normales SELECT COUNT(*) nehmen...

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar

    Lädt...
    X