Zum Inhalt

Smart Loaders: Weniger Datenbankzugriffe für schnellere Seiten

User Guide


CopeX GmbH
Web: https://copex.io
Email: office@copex.io


Inhaltsverzeichnis / Table of Contents

Abschnitt / Section Seite
1 Was es macht / What it does 3
2 Wann sinnvoll / When to use 3
3 Voraussetzungen / Requirements 4
4 Installation 4
5 Aktivierung / Activation 5
6 Verwendung / Usage 5
7 Was tun bei Problemen / Troubleshooting 7
8 Für Entwickler / For Developers 8

1 Was es macht

Reduziert die Anzahl der Datenbankzugriffe bei Kategorie-, Produkt- und Warenkorbseiten. Ein typischer Magento-Shop fragt für eine Kategorieseite mit 24 Produkten mehrere hundert Datensätze einzeln aus der Datenbank ab — Bilder, Preise, Lagerstand, URL-Pfade, Verlinkungen. Smart Loaders bündelt das zu wenigen großen Abfragen.

Das Prinzip: Sobald Magento eine Produktliste lädt, erkennt Smart Loaders die enthaltenen Produkt-IDs und lädt alle zugehörigen Daten (Bilder, Preise, Lagerstand, URLs, Kategorieverknüpfungen, Bundle-Optionen usw.) in einem einzigen Durchgang vorab. Wenn Magento anschließend für jedes Produkt einzeln nach diesen Daten fragt, liefert der bereits gefüllte Speicher die Antwort — keine weitere Datenbankabfrage.

Dasselbe Prinzip gilt für den Warenkorb: MSI-Lagerabfragen, die Magento für jeden Warenkorbposten einzeln ausführt, werden durch eine vorbereitete Batch-Abfrage ersetzt.


2 Wann sinnvoll

  • Kategorieseiten laden langsam, auch bei warmen Caches
  • Datenbank-CPU hoch während normaler Shopnutzung
  • Warenkorb-Seite fühlt sich träge an
  • Query-Log zeigt viele gleichartige Abfragen pro Seite

3 Voraussetzungen

  • Magento 2.4.6 oder höher
  • PHP 8.1 oder höher (kompatibel mit 8.2, 8.3, 8.4, 8.5)
  • copex/module-performance-suite — benötigtes Hauptmodul
  • copex/module-core >1.1.0
  • Optional: magento/module-inventory-sales-api für MSI-Lagerabfragen im Warenkorb

4 Installation

composer require copex/module-preloaders
bin/magento module:enable CopeX_Preloaders
bin/magento setup:upgrade

Alternativ die komplette Suite installieren:

composer require copex/performance-suite-bundle

5 Aktivierung

'copex' => [
    'performance' => [
        'enabled' => true,
        'preloaders_enabled' => true,
    ],
],

Optionale Feinabstimmung:

'copex' => [
    'performance' => [
        'min_batch_size' => 3,   // Mindestanzahl Produkt-IDs bevor Preloading ausgelöst wird
        'chunk_size' => 500,     // Max. Produkt-IDs pro Abfrage
    ],
],

6 Verwendung

Smart Loaders arbeitet vollständig im Hintergrund — keine manuellen Schritte notwendig. Das Modul ist nach Aktivierung und Cache-Flush sofort aktiv.

Messung der Verbesserung:

bin/magento copex:performance:benchmark --url=/kategorie/sale.html

Gibt eine Vergleichstabelle aus: Abfrageanzahl und Ladezeit mit und ohne Preloader.

Vorgeladen werden: Lagerstand, Bilder, Preise, Rabattregeln, URLs, Related/Upsell/Crosssell-Links, Kategorie- und Website-Zuordnungen, Custom Options, Bundle-Optionen und MSI-Lagerabfragen im Warenkorb.


7 Was tun bei Problemen

Kill Switch:

'copex' => ['performance' => ['preloaders_enabled' => false]]

Deaktiviert alle Preloader sofort. Cache leeren. Shop läuft wie vorher.

Für den kompletten Kill Switch:

'copex' => ['performance' => ['enabled' => false]]

Automatische Selbstschutzfunktion: Wenn ein Preloader eine Exception wirft, wird er für den Rest der Anfrage deaktiviert und der Fehler in var/log/copex-performance.log protokolliert. Bei der nächsten Anfrage wird er erneut versucht.

Preloader läuft, aber keine Verbesserung sichtbar:

  1. bin/magento copex:performance:benchmark zur Bestätigung ausführen
  2. min_batch_size prüfen — wenn zu hoch, werden kleine Kollektionen übersprungen
  3. Sicherstellen, dass OPcache aktiv ist

8 Für Entwickler

Eigene Preloader via PreloaderInterface oder TypeAwarePreloaderInterface implementieren und im PreloaderPool in di.xml registrieren. TypeAwarePreloaderInterface deklariert per getSupportedTypes(), für welche Kontexte (list, cart, wishlist, pdp) der Preloader gilt. Details im Quellcode von copex/module-performance-suite.


CopeX GmbH — Web: https://copex.io — Email: office@copex.io