Mit angemessenem Engineering die Suchgeschwindigkeit um das 10-Fache steigern
(engineering.ab180.co)Ein Fallbeispiel, wie ein Suchservice mit passendem, nicht übertriebenem Engineering verbessert wurde.
Problemerkennung
- Sich verlangsamender Suchservice
- Erkennen von Komplexitätsproblemen durch die Verwendung von Joins und regulären Ausdrücken für die Suche
Strategie zur Problemlösung
- Elasticsearch wurde anfangs in Betracht gezogen
- Es gab jedoch Kostenprobleme, da Echtzeitfähigkeit mit der Main DB sowie große Mengen dauerhaft zu speichernder Daten berücksichtigt werden mussten
- Aufbau einer vereinfachten, suchspezifischen Tabelle und Konstruktion der Suchabfragen
- Einsatz von MySQL-Triggern zur Datenbefüllung
Ergebnisse
- Eine Abfrage, die 3 Minuten dauerte, wurde auf 2 Sekunden verbessert
- Mit nicht übertriebenem Engineering in kurzer Zeit Kundennutzen geliefert
2 Kommentare
Beim Aufbau großer Websites mit viel Traffic wurde hier die Methode angewendet, für dieselben Daten mehrere Tabellen anzulegen und sie nach ihrem Verwendungszweck zu trennen.
Man teilt sie zum Beispiel in eine Kunden- und eine Admin-Version auf, und hier ist das ein gutes Beispiel dafür, den Zweck speziell für die Suche festzulegen und erfolgreich umzusetzen.
Ich kenne mich im DB-Bereich nicht besonders gut aus, deshalb finde ich es immer erstaunlich und spannend, solche informativen Artikel zu lesen.