Optimierung der SQL-Last

Kunde:

Große E-Commerce-Plattform

Reduzierung der Abfragen von 16.685 auf 24 in nur 1,5 Stunden
Optimierung der SQL-Last

Einleitung

Ein Kunde wandte sich mit der Anforderung an uns, die Ladezeit einer der wichtigsten Seiten seiner Website deutlich zu verbessern. Die Seite wies Ladeverzögerungen von mehreren Sekunden auf. Bereits bei der ersten Analyse zeigte sich, dass die Ursache in einer übermäßigen Datenbanklast lag: Beim Aufruf der Seite wurden mehr als 16.000 SQL-Abfragen ausgeführt.

Diese Last führte nicht nur zu Performanceproblemen, sondern gefährdete auch die Stabilität der Seite bei steigendem Traffic. Ziel war es, die Optimierung in kürzester Zeit durchzuführen – ohne die Geschäftslogik zu verändern oder andere Bereiche der Website zu beeinflussen.

Unser Team führte eine gezielte Optimierung der Datenlade­architektur durch und erzielte ein bemerkenswertes Ergebnis: nur noch 24 Abfragen statt 16.685 – und das innerhalb von lediglich 1,5 Stunden.

Systembeschreibung

Das Projekt umfasst eine umfangreiche E-Commerce-Plattform, entwickelt mit dem Laravel-10-Framework und dem Eloquent-ORM. Als Datenbank wird MySQL verwendet. Die Frontend-Darstellung basiert auf Blade und wird teilweise durch Vue.js ergänzt.

Die betroffene Seite stellte einen Produktkatalog dar. Jedes Produkt beinhaltete Bilder, technische Daten, Filterparameter, Markeninformationen, Verfügbarkeiten sowie personalisierte Nutzerdaten (z. B. Favoriten).

Aufgrund der hohen Datenverknüpfung und des Fehlens geeigneter Optimierungsmechanismen kam es zu einer explosionsartigen Zunahme der SQL-Abfragen.

Die Ursache lag jedoch nicht in der Datenmenge, sondern in der Art der Datenabfrage: Es wurde kein Eager Loading eingesetzt, was zum klassischen N+1-Problem führte – für jeden Datensatz wurden zusätzliche Abfragen an verbundene Tabellen ausgelöst.

Herausforderung: Zu viele SQL-Abfragen auf einer einzigen Seite

Mit Hilfe von Profiling-Tools (Laravel Debugbar, SQL-Logging) wurden beim Laden einer einzelnen Seite 16.685 Abfragen festgestellt. Die Hauptursachen waren:

  • Abfragen zu verbundenen Modellen wurden innerhalb von Schleifen ausgeführt.
  • Modellbeziehungen waren nicht definiert oder wurden nicht genutzt.
  • In den Templates wurden Beziehungen ohne vorheriges Laden aufgerufen.

Der Kunde stellte dabei folgende Anforderungen:

  • Keine Änderungen an der Geschäftslogik oder der API.
  • Die Lösung muss skalierbar sein.
  • Strikte Einhaltung der Laravel-Standards – keine „Tricks“ oder manuelle Datenaggregation.
Trichter-Diagramm: Prozess zur Optimierung der SQL-Last

Analyse der Engpässe und Reduzierung der Abfrageanzahl

Lösung: Einsatz von Eager Loading und Optimierung der Modelle

Die Optimierung erfolgte in mehreren Schritten:

Architekturdiagramm: Templates, Controller, Modelle und Performance-Engpässe

Analyse der Engpässe

Alle beteiligten Modelle, Controller-Logiken und Templates wurden überprüft.

Korrektur der Modellbeziehungen

Beziehungen wie hasMany, belongsTo, hasOne, morphMany usw. wurden korrekt definiert. Dadurch konnten die zugehörigen Datensätze sauber und explizit geladen werden.

Optimierung des Datenladens: explizites Laden und Anpassung der Beziehungen in der Datenbank
Optimierung des Datenladens und Reduzierung der Anzahl der SQL-Abfragen

Implementierung von Eager Loading

Überall dort, wo zuvor Lazy Loading verwendet wurde, kamen nun with() und load() zum Einsatz, um die benötigten Daten in möglichst wenigen Abfragen zu laden.

Beispiel:

Product::with(['images', 'brand', 'filters', 'favorites'])->get();

Optimierung der Templates und Darstellung

Die Blade-Templates wurden überarbeitet: Verweise auf Links innerhalb von Schleifen entfernt, die Darstellung vereinfacht und doppelte Abfragen beseitigt.

Optimierung der Blade-Templates: Vereinfachung der Logik, Tests und Leistungssteigerung
Anzahl der SQL-Abfragen vor und nach der Systemoptimierung

Tests und Messungen

Nach der Umsetzung wurden Lasttests sowie ein erneutes SQL-Logging durchgeführt.

Ergebnis: Für die vollständige Seitenladung werden nun nur noch 24 Abfragen benötigt.

Ergebnisse

Browserfenster mit Telemetrie-Dashboard — Seite Request Details auf telemetry.yourdomain.com
Anzahl der SQL-Abfragen von 16.685 auf 24 reduziert
Durchschnittliche Seitenladezeit um den Faktor fünf verkürzt
Datenbanklast blieb selbst unter hoher Auslastung stabil
Codebase entspricht den Laravel-Best Practices und ist leichter wartbar
Gesamtdauer von der Aufgabenstellung bis zum Livegang: unter 2 Stunden
Portfolio

Weitere Projekte

VPUT VPUT Wie wir einen Ferienvermietungsservice in Bulgarien entwickelt und es auf 1500 Buchungen p... Case ansehen Stooller Stooller Umzüge ohne Anrufe: Wie wir einen Dienst entwickelt haben, der den Preis berechnet, Anfrag... Case ansehen Trade Bot Trade Bot +100 Trades pro Minute. 20-mal schneller als ein Trader. Volle Kontrolle in Telegram. Case ansehen WineShip WineShip Website für eine Weinmarke mit intelligentem Filter, SEO-Struktur und einfacher Auswahl un... Case ansehen BeFamily BeFamily Wir haben einen Online-Shop für Familienbekleidung entwickelt, das Design optimiert, die B... Case ansehen Ansy Ansy Wir arbeiten seit über 10 Jahren mit dem Kunden zusammen. + 300 % auf die Download-Geschw... Case ansehen RiseX RiseX Wie wir eine Kryptobörse auf den Markt gebracht haben: automatische Preisaktualisierungen,... Case ansehen BolgarskiyDom BolgarskiyDom Wie eine Immobilienwebsite in Bulgarien aus den Suchmaschinenfiltern herausgeführt wurde,... Case ansehen Neweurofences Neweurofences Wie ein Online-Zaunshop mit SEO und Google Ads die Sichtbarkeit bei Suchanfragen um 25 % s... Case ansehen Tetri’s Smile Tetri’s Smile Eine Zahnärztliche Boutique, die VIP-Dienstleistungen in Miami anbietet: 3-fache ROI-Steig... Case ansehen SoleaWellness SoleaWellness Schönheitssalon in Miami. Umstellung der Website auf WordPress, SEO und Marketing. Ergebni... Case ansehen Solea Beauty Salon Solea Beauty Salon Wie ein Schönheitssalon in Miami die Anfragen um das Dreifache und den organischen Traffic... Case ansehen Online-Optikgeschäft Online-Optikgeschäft Online Optikgeschäft. Website-Entwicklung, SEO-Optimierung, Marketing und Integrationen. V... Case ansehen Fallstudie zur Entwicklung und Optimierung von SvetlanaDental Fallstudie zur Entwicklung und Optimierung von SvetlanaDental SvetlanaDental – eine Fallstudie zur Entwicklung und Optimierung der Website einer Zahnärz... Case ansehen Fallstudie zur Promotion und Entwicklung einer Praxis für ganzheitliche Zahnheilkunde Fallstudie zur Promotion und Entwicklung einer Praxis für ganzheitliche Zahnheilkunde Advanced Dental Wellness Center - Zahnmedizin in Miami, Fort Lauderdale. Ganzheitliche Zah... Case ansehen Fallstudie zur Promotion und Entwicklung von MyMoneyArt Fallstudie zur Promotion und Entwicklung von MyMoneyArt Migration der MyMoneyArt-Website auf WordPress, SEO, UX-Verbesserungen: +500% Traffic, Anw... Case ansehen Fallstudie zur Entwicklung und Promotion von Biomilk.ru Fallstudie zur Entwicklung und Promotion von Biomilk.ru Biomilk – Vertriebspartner für Lebensmittel in Moskau und den Regionen. +100 % organische... Case ansehen Sutton Advanced Cosmetic Dentistry Sutton Advanced Cosmetic Dentistry Promotion einer VIP-Zahnarztpraxis in Manhattan Von 13 auf 80 Keywords in den Top10 bei G... Case ansehen Fallstudie zur Promotion der Marketingagentur Mates China Fallstudie zur Promotion der Marketingagentur Mates China Mates China ist eine Digitale-Marketing-Agentur, die Unternehmen dabei unterstützt, in Chi... Case ansehen VPUT VPUT Wie wir einen Ferienwohnungs-Service in Bulgarien aufgebaut und in einer Saison 1.500 Buch... Case ansehen Stooler Stooler Online-Service mit automatischer Preiskalkulation und +40 % Bestellungen direkt nach dem S... Case ansehen SoleaDentalSpa SoleaDentalSpa Zahnklinik in Sunny Isles Beach - Steigerung der Anfragen um das Dreifache durch Suchmasch... Case ansehen
Webdelo SEO Webdelo SEO Erfahren Sie mehr über unseren SEO-Ansatz, von Analysen und Audits bis hin zu Inhalten, Li... Case ansehen Online Shop Nevapallete.cn Online Shop Nevapallete.cn Wir erstellten Nevapallete.cn für China: Hosting in Hongkong, chinesische Domain, schnelle... Case ansehen WineShip WineShip Weinkatalog mit über 2000 Flaschen, flexiblen Filtern und Auswahlsystem nach Jahrgang und... Case ansehen Annazur – So haben wir ein Schönheitssalon in Jacksonville, Florida, promotet. Annazur – So haben wir ein Schönheitssalon in Jacksonville, Florida, promotet. Ganzheitliches SEO für den Schönheitssalon Annazur in Florida: mehr Traffic, lokale Platzi... Case ansehen Fallstudie Zahnarzt-SEO: Mehr Patienten & Umsatz für die Zahnarztpraxis „Novaya Orbita“ durch strategische Suchmaschinenoptimierung Fallstudie Zahnarzt-SEO: Mehr Patienten & Umsatz für die Zahnarztpraxis „Novaya Orbita“ durch strategische Suchmaschinenoptimierung Dental-SEO-Fall: 50-80 Zielanrufe/Monat, Top-Rankings & Traffic-Wachstum seit Feb. 2023 du... Case ansehen Berger 3D Design Berger 3D Design WordPress-Website mit Katalog für deutschen B2B- Ablagesysteme für Messmittel. Benutzerfre... Case ansehen Solea Brickell Spa Solea Brickell Spa Sie möchten, dass Ihre Website nicht nur existiert, sondern auch echte Kunden bringt? Wir... Case ansehen KidsJumpTech KidsJumpTech Von einer Website am Rande des Zusammenbruchs zu 40 Anfragen an einem Wochenende Case ansehen Alanta Clinic Alanta Clinic Wie eine Zahnarztpraxis mit einer Single-Page-Website die Anzahl ihrer Patienten aus der R... Case ansehen Optimierung des automatisierten Deal-Matchings Optimierung des automatisierten Deal-Matchings Weniger Systemlast, höhere Transaktionssicherheit Case ansehen Suche mit russischsprachigen Markensynonymen Suche mit russischsprachigen Markensynonymen Wie wir die Ausgabe beschleunigt und die Systemlast reduziert haben Case ansehen Webdelo für Zahnkliniken Webdelo für Zahnkliniken Digitales Marketing für Zahnarztpraxen: SEO, Google Maps und gezielte Werbeanzeigen. Über... Case ansehen Webdelo Immobilien Webdelo Immobilien 10 Jahre Branchenerfahrung, 7 Großprojekte in Russland und Europa. Ganzheitliches SEO: von... Case ansehen Effiziente Buchungslösung für Fallschirmsprünge Effiziente Buchungslösung für Fallschirmsprünge Wie wir die Buchungen von fünf Standorten aus Excel in ein zentrales System überführt habe... Case ansehen Wie wir eine komplexe EdTech-Plattform ohne Dokumentation erfolgreich übernommen und weiterentwickelt haben Wie wir eine komplexe EdTech-Plattform ohne Dokumentation erfolgreich übernommen und weiterentwickelt haben Verfeinerung und Weiterentwicklung des Bildungsportals. Case ansehen Redesign und Migration eines Onlineshops für Dentalbedarf Redesign und Migration eines Onlineshops für Dentalbedarf Wir haben den Onlineshop für Dentalmaterialien modernisiert und eine leistungsstarke Platt... Case ansehen Inserats-Matching optimiert – 72 % Zeitersparnis bei Änderungen erzielt Inserats-Matching optimiert – 72 % Zeitersparnis bei Änderungen erzielt Optimierung der automatischen Anzeigenauswahl Case ansehen Webdelo Dev Webdelo Dev Full-Cycle-Entwicklung: von der detaillierten technischen Planung und API-Architektur bis... Case ansehen Bonadomus Bonadomus BONADOMUS ist eine digitale Immobilienplattform für den Markt in Dubai, die von Grund auf... Case ansehen Lackmann Fleisch- und Feinkostfabrik GmbH Lackmann Fleisch- und Feinkostfabrik GmbH Entwicklung einer mehrsprachigen Landingpage für die Lackmann Fleisch- und Feinkostfabrik... Case ansehen Internes ERP für die Teamsteuerung Internes ERP für die Teamsteuerung Für ein Unternehmen mit dreißig Menschen gibt ein internes ERP HR und Buchhaltung zwei bis... Case ansehen
cookies Wir verwenden Cookies

Wir verwenden Cookies auf unserer Website, um die Nutzung zu analysieren, Inhalte zu personalisieren und die Website zu verbessern. Einige Cookies sind technisch notwendig und können nicht deaktiviert werden. Für alle anderen Cookies benötigen wir Ihre Zustimmung. Sie können Ihre Auswahl jederzeit ändern oder Ihre Einwilligung widerrufen. Weitere Informationen finden Sie in unserer Datenschutzerklärung.

Notwendige Cookies

Manche Cookies sind erforderlich, damit bestimmte Webseiten funktionieren. Aus diesem Grund werden sie ohne Ihre Einwilligung gesetzt.

Analyse-Cookies

Wir nutzen diese Cookies für interne Analysen, um unseren Service für alle Nutzer zu verbessern. Diese Cookies bewerten, wie Sie mit unserer Webseite interagieren. Sie werden nur mit Ihrer Einwilligung gesetzt.

Werbe-Cookies

Diese Cookies können von unseren Werbepartnern über unsere Webseite gesetzt werden. Sie ermöglichen es diesen Unternehmen, ein Profil Ihrer Interessen zu erstellen und Ihnen relevante Anzeigen auf anderen Webseiten anzuzeigen. Sie basieren auf der eindeutigen Identifizierung Ihres Browsers und Internetgeräts. Diese Cookies werden nur mit Ihrer Einwilligung gesetzt. Wenn Sie sie nicht zulassen, erhalten Sie weniger zielgerichtete Werbung.

Auf dieser Website verwenden wir zusätzlich das Mess-Pixel von OpenAI für ChatGPT Ads. Es speichert die Kennung __oppref in Ihrem Browser. Wenn Sie uns eine Anfrage senden, können Ihre E-Mail-Adresse und Ihre Telefonnummer in gehashter Form an OpenAI in die USA übermittelt werden, damit die Anfrage der angeklickten Anzeige zugeordnet werden kann; in lesbarer Form werden sie nie übermittelt.