Hallo zusammen,
in diesen Tagen wurde ich von meinem Provider (ALL-INKL) mit einem "Riesenproblem" konfrontiert, weil die Auslastung des DB-Servers ins Uferlose stieg. Die Ursachenforschung entdeckte ziemlich schnell folgenden "Endlos-SELECT" als Übeltäter:
Dieser SELECT-Code wird in ModuleCatalogList.php in Zeile 173 generiert.Code:SELECT COUNT(id) AS count FROM cat_Musikanten WHERE pid='1' AND aktiv=1 AND offline='' AND geloescht='' AND id IN (SELECT DISTINCT(itemid) FROM tl_catalog_tag_rel WHERE fieldid=375 AND itemid IN (SELECT itemid FROM tl_catalog_tag_rel WHERE fieldid=375 AND valueid=114 AND itemid IN(SELECT itemid FROM tl_catalog_tag_rel WHERE fieldid=375 AND valueid=114)) AND valueid IN (114))
Ausgangslage
- CONTAO 2.11.6
- Catalog (V 2.0.0 beta2 build 74) mit der ID 1 enthält Musikgruppen, die sogenannte Regionen vertreten.
- Die Regionen (fieldid 375) sind in der Taxonomie (V 0.1.8 stable build 10) hinterlegt und finden sich in der tl_catalog_tag_rel als valueids wieder (z.B. Bayern = valueid 114, Baden-Württemberg = valueid 115 usw.).
- Manche Gruppen vertreten mehr als 1 Region, da sie im Grenzgebiet zwischen 2 Regionen angesiedelt sind. Aus diesem Grund habe ich bei der Feld-Konfiguration im Katalog unter "Typ" nicht "Auswahl", sondern "Tags" ausgewählt.
Bis dahin läuft alles korrekt. Die Checkboxen für die Katalogeinträge werden im Backend korrekt angezeigt, die Auswahl korrekt abgespeichert.
Im Catalog-Filter habe ich nun unter "Feld-Filter" das "Filter-Feld" Region als Auswahlmenü definiert.
Symptom
Sobald ich nun im Frontend den Filter aufrufe und dort eine Region auswähle, setzt die Catalogliste o.g. SELECT ab, dessen Funktion ich mangels ordentlichem SQL-Wissen nicht verstehe. Jedoch ist auch für mich die Ineinander-Verschachtelung des Fragments
auffällig und steht deshalb im Verdacht, Verursacher der Endlosschleife zu sein.Code:AND itemid IN (SELECT itemid FROM tl_catalog_tag_rel
Vorläufige Gegenmaßnahme
Das Problem löst sich sofort in Luft auf, sobald ich das Catalogfeld als "Auswahl" definiere und damit eine Zuordnung zu mehr als 1 Region nicht mehr zulasse.
Wer versteht die Zusammenhänge und kann mir weiterhelfen? (Vielleicht MacKP?)
1000 Dank im Voraus von
wsa