[Frage] MenuProcessor erzeugt hunderte SQL SELECTS

  • freeatweb freeatweb
    Jedi-Meister
    0 x
    251 Beiträge
    4 Hilfreiche Beiträge
    04. 12. 2018, 20:41

    Liebes Forum,

    ich habe bei einem Projekt (TYPO3 8.7) die neuen MenuProcessor eingebunden.

    Die Seite hat ca. 600 Seiten, aufgeteilt in mehreren Menüs.
    Das Rendering der Menüs klappt hervorragend, leider werden jedoch bei Aufruf von Seiten ohne Cache (z.B. &no_cache=1) ca. 1100 Select Statements gesetzt - die meisten davon sind:

    SELECT `uid` FROM `pages` WHERE (`uid` IN (:dcValue1)) AND (`doktype` NOT IN (:dcValue2)) AND ((`pages`.`deleted` = 0) AND ((`pages`.`t3ver_state` <= 0) AND (`pages`.`pid` <> -1)) AND (`pages`.`hidden` = 0) AND (`pages`.`starttime` <= 1543871700) AND ((`pages`.`endtime` = 0) OR (`pages`.`endtime` > 1543871700)) AND ((`pages`.`fe_group` IS NULL) OR (`pages`.`fe_group` = '') OR (`pages`.`fe_group` = '0') OR (FIND_IN_SET('0', `pages`.`fe_group`)) OR (FIND_IN_SET('-1', `pages`.`fe_group`))))

    und

    SELECT `uid`, `pid`, `doktype`, `mount_pid`, `mount_pid_ol`, `t3ver_state` FROM `pages` WHERE (`uid` = :dcValue1) AND (`doktype` <> :dcValue2) AND (`pages`.`deleted` = 0)

    Ladezeiten liegen dadurch bei 10 bis > 20 sekunden.
    Sobald man die Menüs deaktiviert, verringern sich logischerweise die SQL-Abfragen dramatisch - Ladezeit wesentlich besser

    APCu-Cache aktiv.

    Woher kommen diese zahlreichen SQL-Statements? von den MenuProcessors?
    Für mich sieht es so aus, als ob TYPO3 beim GEnerieren des Menüs für jede Seite ein eigenes Select absetzt

    Freue mich auf Ideen/Erfahrungen

    Lg


  • 1
  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    0 x
    2826 Beiträge
    104 Hilfreiche Beiträge
    05. 12. 2018, 09:35

    Beim Generieren von Menüs ist das letztlich auch nötig. Woher soll ansonsten eine Information stammen, ob eine Seite Unterseiten hat bzw. welche Unterseiten?
    Hierbei ist es übrigens egal, ob MenuProcessors oder TypoScript - die Information über die Struktur der Website muss irgendwoher kommen. Und wenn Du TYPO3 das nicht cachen lässt (z.B. &no_cache=1), dann muss TYPO3 sich die Struktur jedesmal neu zusammenbauen.

    Andere Frage: warum darf TYPO3 die *gesamte* Seite nicht cachen? Ändert sich das Menü mit jedem Aufruf? Falls nein, warum darf das Menü nicht gecacht werden?

  • 1