Mailinglisten-Archive |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Tim Hildebrandt schrieb: > Hallo Andreas, > > > >> Im genannten Beispiel heisst das: Möchte ich eine performate >> Lösung haben um die Summe von 'filesize' pro user_id zu >> ermitteln so kann ich zwar einen einfachen Index auf >> 'user_id' verwenden - nur führt das zu Zugriffen auf die >> Datendatei weil der Wert für 'filesize' gelesen werden muss. >> Lege ich einen Index über 'user_id,filesize' an so erfolgt >> die Abfrag ausschließlich im Index. > > Angenommen, ich protokolliere in einer Weblösung die Klicks der Benutzer mit > und merke mir in einer Protokolltabelle, auf welche Rubrik, welches Dokument > und welches Bild geklickt wurde. Dann habe ich genau genommen drei Spalten, > die für mich interessant sind und die alle ggf. einzeln mit COUNT > ausgewertet werden sollen (natürlich über einen Zeitraum, der seinerseits > als DATETIME und Index vorliegt). Dann würde es Deiner Ausführung nach mehr > Sinn machen, einen Gesamtindex über die Spalten "Klickzeitpunkt, RubrikPfad, > DokumentID, BildID" statt jeweils über die einzelnen Spalten zu erzeugen? du brauchst einen Index über die Spalten die in der Abfrage im ORDER, WHERE oder JOIN Teil vorkommen, und die Reihenfolge ist natürlich auch noch relevant ... wobei neuere MySQL-Versionen auch mehrere Indizes für eine Abfrage verwenden können ... ... und wenn du eh ALLE Felder der Tabelle benötigst wäre der Index selber ja genauso groß wie die Tabelle ... weniger praktisch > Oder geht es dabei konkret um Aggregatfunktionen wie z.B. SUM? Ich denke, > dass die Menge der Datensätze mittels COUNT auch so recht performant > ermittelt werden können, oder? es ging ja nicht um ein simples COUNT(*), und ein COUNT(*) ist auch nur so performant wie der Index der auf der im WHERE verwendeten Spalte liegt. (eventuelle JOINS außer Acht gelassen) - -- Sebastian Mendel www.sebastianmendel.de -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (MingW32) iD8DBQFElqUyX/0lClpZDr4RAlkBAJ9beefo58NKGWR+H9nWuLE1xxOvgACfQ+6x nHrrlKFLOoRFJXQWy+t6L8s= =MI88 -----END PGP SIGNATURE----- -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive