Views und Performance
am 15.09.2010 - 10:51 Uhr in
Habe auf meiner neu entstehenden Seite eine extrem lange Page execution time und beisse mich so langsam durch alle moeglichen Anleitungen zur Performanceoptimierung.
Hier eine der Fragen zu denen ich noch keine Antwort gefunden habe:
Verlangsamt es den Datenbankzugriff wenn Views nach nicht vorhandene Dantenbankfeldern sucht?
Zum genauen Verständnis die Situation:
Die Zusatzinformation zu den Nodes, in Form teils recht vieler CCK Felder, wird seitlich in Blocks ausgegeben.
Momentan habe ich zu jedem Nodetyp jeweils eine View erstellt, die die entsprechenden CCK Felder abfragt. Wobei der entsprechende Block je nach Url erscheint.
Dadurch entstehen insgesamt 10 Views und entsprechend viele Blöcke.
Alternativ kann ich dieses mit einer View realisieren, die alle CCK Felder aller Nodetypen abfragt und mit "Hide if empty" ignoriert wenn nicht vorhanden. Eventuell nicht gewuenschte Felder würde ich dabei über CSS mit "display: none" verschwinden lassen.
Welcher der beiden Möglichkeiten erziehlt die bessere Performance?
Die dritte Möglichkeit dieses mit die Display Suite umzusetzen scheidet meines Erachtes aus, da im selben Seitenbalken auch Daten aus referenzierten Nodes erscheinen sollen. Sehe ich das richtig?
Danke
Achim
- Anmelden oder Registrieren um Kommentare zu schreiben
So weit ich das verstanden
am 15.09.2010 - 13:05 Uhr
So weit ich das verstanden habe, lässt die Option "hide if empty" das Ausgabefeld einfach leer, mach aber keine spezielle Datenbankabfrage.
Beide deine Möglichkeiten behinhalten Views, ich kann den Unterschied nicht so recht erkennen.
Generell kann man sagen, das jeder View Performance frisst. Du kannst versuchen deine Views zu cachen, das erspart Dir auf jeden Fall eine Menge Rechenzeit.
Docmiller, danke fuer die
am 15.09.2010 - 13:44 Uhr
Docmiller, danke fuer die Antwort
1. Nun, eine Datenbankabfrage muss er schon machen um zu wissen dass die Daten nicht da sind. Unklar ist mir ob beim Suchen nicht vorhandener Daten mehr Zeit vergeht als beim Finden vorhandener.
2. Der Unterschied ist, dass jetzt eine laengere Blockliste durchgearbeitet wird, sowie ja auch mehr Views existieren. Die dabei gefundene View dann aber geziehlt die gewuenschten Daten abfragt. Im anderen Fall sind die Listen kuerzer, aber die vereinheitlichte View macht mehr Datenbankabfragen die teilweise leer sind. Einen zeitlichen Unterschied wird das wohl machen.
3. Gecached wird auf jeden Fall, klar.
Zur Zeit brauchen die Datenbankabfragen weit unter einer Sekunde, während die Page execution time meist 3 bis über 10 Sekunden in Anspruch nimmt. Was ich aber nicht auf die hier gestellte Frage zurückführe.
cocopeli schrieb 3. Gecached
am 15.09.2010 - 13:55 Uhr
3. Gecached wird auf jeden Fall, klar.
In den Drupaleinstellungen oder im View selber?
Sowie als
am 15.09.2010 - 15:55 Uhr
Sowie als auch.
Besorgniserregend ist bei mir wie gesagt die gesamte Page execution time, allerdings nicht die Dauer der Datenbankabfrage. Somit dürfte das Cachen der Views keine grosse Besserung bringen.
Boost ist noch nicht aktiviert. Im Moment sorge ich noch hauptsächlich um meine eigenen Nerven, nicht um die der Besucher. Ich wills jedenfalls als erstes aendern dass ich bei jedem Administrationsklick zum Aufbau der Seite 10 Sekundenen warten muss.