Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: Endlos-SELECT bei Verwendung von Feldtyp Tags im Catalog und Catalogfilter

  1. #1
    Contao-Nutzer Avatar von wsa
    Registriert seit
    27.10.2009.
    Ort
    Augsburg
    Beiträge
    128

    Frage Endlos-SELECT bei Verwendung von Feldtyp Tags im Catalog und Catalogfilter

    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:
    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))
    Dieser SELECT-Code wird in ModuleCatalogList.php in Zeile 173 generiert.

    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
    Code:
    AND itemid IN (SELECT itemid FROM tl_catalog_tag_rel
    auffällig und steht deshalb im Verdacht, Verursacher der Endlosschleife zu sein.

    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
    Geändert von wsa (15.04.2014 um 13:37 Uhr)

  2. #2
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo wsa
    da gibt es eigentlich nicht wirklich hilfe... wechsel zu MM ;-)
    Der Catalog wird nicht weiter entwickelt.
    Wenn du das aber noch unbedingt behalten und damit fixen musst, dann mach mal ne anfrage an Xtra.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  3. #3
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    Zunaechst, wie MacKP schon schrieb, es ist dir angeraten auf MetaModels zu wechseln.
    Am Catalog entwickle ich nun schon bald 2 Jahre nicht mehr, da MetaModels der Nachfolger ist (und auch bleiben wird).

    Ansonsten, wie lange braucht das Query denn wenn du es im phpMyAdmin eingibst?

    ggf. kann man da durch geschicktes Index setzen noch was reissen.

    Gruss
    Chris
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  4. #4
    Contao-Nutzer Avatar von wsa
    Registriert seit
    27.10.2009.
    Ort
    Augsburg
    Beiträge
    128

    Standard

    Hallo xtra,

    danke für deine Antwort und deine Bereitschaft, zu helfen - wenn's geht.
    Das Query läuft in jedem Fall Stunden - egal ob direkt aus dem Frontend oder via phpMyAdmin abgesetzt.

    LG wsa
    P.S.: Werde mich übrigens in nächster Zeit mit MM anfreunden; ob ich es mir allerdings für die bestehende Anwendung noch antue, alles auf Basis MM neu zu machen, wird sich zeigen.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •