Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

19.000 Taxonomy Terms und Views

Eingetragen von Kars-T (1473)
am 12.11.2008 - 11:40 Uhr in
  • Allgemeines zu Drupal
  • Drupal 5.x

Ich habe da eine Taxonomy mit rund 19.000 Terms. Das sind ca. 300kb Daten. Alles in allem ein Klacks für MySQL. Die Abfragen sind wohl meist Primärschlüssel Joins soweit ich das sehe. Dabei gehe ich von keinem Leistungseinbruch aus.

Drupal legt mir also die Terms an, knallt dazu 19.000 URLs und Hierarchie Einträge in die Datenbank und gut ist. Drupal im Core scheint damit auch wirklich keine Probleme zu haben.

Aber dann verreckt mir Views. max_packets_allowed wurde überschritten. Gut 1MB ist zu wenig für anscheinend 3 MB Daten, aber was macht denn überhaupt einen so irrwitzig großen Eintrag in die DB? Views ist es, da Views die Taxonomy cached.

Also suche ich etwas verzweifelt eine Möglichkeit den Cache von Views aus zu schalten, was nach meinem Stand nicht geht.

Ich habe aber das Modul hier noch nicht ausprobiert, das ist aber wie ich das verstehe nur für die Nodes.
http://drupal.org/node/190269

Also mache ich erstmal das hier.
http://drupal.org/node/218187

Bin ich nicht begeistert davon Views zu hacken, verspricht aber Besserung.

Für eine Taxonomy dieser Größe hilft das aber gar nichts. Views haut immer noch zu viele Daten in die Tabelle.

Ich erhöhe max_packages und der Fehler ist erstmal weg. Drupal ist aber unglaublich langsam! Wenn auf der Seite ein View ist, dann braucht die Seite ca. 60 Sekunden.

Das machte mich etwas verzweifelt. Es scheint ja so zu sein, das Views http://de.php.net/serialize bzw. http://de.php.net/unserialize bei jedem Aufruf nutzt und php dann so richtig am Ackern ist bei den ganzen Terms. Vielleicht ist das aber nicht das Problem sondern Views iteriert die Daten und bringt das in Form für eine Selectbox, die nicht gebraucht wird. Ich weiß es nicht genau.

Allerdings hatte ich den Entwickler von Views über hierarchische Taxonomien schimpfen gehört und habe dann einfach mal ausprobiert die Taxonomy ohne Hierarchie an zu legen.

Das Ergebnis ist erstaunlich. Plötzlich geht alles. Der Blob des View Caches war mit Hierarchie 3MB und ohne nun 1,5MB. Ich denke das ist immer noch sehr viel, aber irgendwie frisst das nicht so viel Leistung.

Ich frage mich nun, was man denn machen soll, wenn man eine riesen Hierarchie anlegen will. In der ersten Ebene waren das irgendwie 8.000 Terms und dann halt die Verknüpfungen.

Ich dachte ich habe damit eher Probleme beim Auswählen und das ich das noch in mehr Ebenen Zerlegen muss, damit das besser funktioniert. 8.000 Terms kann man immer noch schlecht in eine Selectbox packen und die meisten Module für Taxonomy Hierarchien tun genau das. Nun habe ich alle 19.000 linear und alles ist schneller? Gut nun nehme ich nicht Hierarchical Select sondern einfach Autovervollständigung und gut ist. Aber zufrieden macht mich das nicht.

Es ist ja ehrenwert, das Views versucht sich die ganzen Joins für die Hierarchie Abfrage zu sparen und es in einem PHP Array ablegt. Aber irgendwann ist da halt Schluss und was ich einfach nicht verstehe ist, warum Views das überhaupt macht, wenn ich genau weiß, das das Feld zu groß ist und es definitiv nicht in einem Filter nutzen will. Als erstes habe ich die Views durch gesehen, das das Feld ja nirgends verwendet wird und das ist auch so.

Auf Views kann ich nicht verzichten. Die Abfragen zu schreiben ist ja das geringere Problem, aber die Theming Engine und Paging Sache wäre einfach zu aufwendig.

Ich muss noch eine Hierarchie mit ca. 1.000 Terms ins System nehmen und die brauch ich zwingend. Hoffentlich passiert nicht schon ab der Masse was ähnliches.

Und wie das dann mit den 26.000 Nodes wird, die ins System sollen, bin ich mal gespannt drauf. :)

‹ Gelöst: HILFE - Falscher PHP-Code im Block - nichts geht mehr HILFE: Plötzlich komischer Datenbankfehler? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Views

Eingetragen von Kars-T (1473)
am 18.11.2008 - 18:32 Uhr

Ich bin dann mal die Daten durchgegangen.

Der Patch hier ist falsch!
http://drupal.org/node/218187

Es wird auf ein array geprüft, wo ein object ist. Wenn ich den Patch patche, dann wird alles schon mal sehr sehr viel schneller. Wenn man das ändert, ist der Patch nett, da es kleiner Datenhaufen sind, die man dann einzeln bearbeitet, geht aber das eigentliche Problem nicht an.

Das Problem ist in
views/modules/views_taxonomy.inc
zu finden.

Wenn man sich taxonomy_views_tables ansieht, wird man finden, das Views sich das Formular zur taxonomy holt und als Array in den Cache setzt. Das wäre ja alles nicht schlimm, wenn man das verhindern könnte. So habe ich ein IMMER ein Array mit 19.000 Einträgen, das ich bei jedem Views aufruf durchschleifen muss.

Wenn ich auf die vid prüfe und einfach das riesen Vokabular aus Views rausnehme, dann ist der Cache sofort wieder winzig und es macht keine Probleme.

Ich denke Views verhält sich hier falsch. Die Daten sollten erst gezogen und in den Cache wandern, wenn sie gebraucht werden. Und auch erst gezogen, wenn es wirklich angezeigt werden soll.

---

Viele Grüße,

Kars-T XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 6 Tagen
  • Hey danke
    vor 2 Wochen 2 Stunden
  • Update: jetzt gibt's ein
    vor 2 Wochen 20 Stunden
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 2 Tagen
  • In der entsprechenden View
    vor 3 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 2 Tagen
  • gelöst
    vor 5 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 2 Stunden

Statistik

Beiträge im Forum: 250233
Registrierte User: 20451

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 16 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association