Laravel Vector Search unterstützt jetzt MariaDB
Mit Laravel 13 können Entwickler native Vektorsuche-Abfragen gegen MariaDB ausführen, was dem Laravel-Ökosystem semantische Suchfunktionen hinzufügt, ohne einen Wechsel zu PostgreSQL zu erzwingen.
Die neue Unterstützung ersetzt die frühere, rein auf PostgreSQL basierende Implementierung des Frameworks, sodass die vertraute Methode whereVectorSimilarTo nun direkt mit einer MariaDB-Verbindung funktioniert. Wenn Sie Empfehlungsmaschinen, Tools zur Dokumentenähnlichkeit oder Funktionen entwickeln, die auf einer „Nearest-Neighbor“-Logik basieren, beseitigt diese Änderung einen wesentlichen Reibungspunkt.
Warum dieser Wechsel wichtig ist
Der Query Builder von Laravel erkannte Vektorsuche-Anforderungen zuvor mittels eines instanceof-Tests, der nur PostgreSQL-Verbindungen identifizierte. Dieser Ansatz band die Funktion an einen einzelnen Treiber und übersäte die Codebasis mit datenbankspezifischen Bedingungen.
Das Release 13 verlagert die Logik in die Grammar-Ebene und fügt zwei treiberspezifische Methoden hinzu:
supportsVectorDistance()– teilt Laravel mit, ob die aktuelle Verbindung Vektordistanzen berechnen kann.compileVectorDistanceExpression()– erstellt das SQL-Fragment, das die Berechnung durchführt.
Indem diese Verantwortlichkeiten jedem Treiber zugewiesen werden, verzichtet das Framework auf den „Type-Checking“-Hack und ebnet den Weg für zukünftige Erweiterungen. Die Unterstützung einer weiteren Datenbank bedeutet nun, ein paar Treibermethoden zu implementieren, anstatt bedingte Blöcke zu verstreuen.
MariaDB erhält native Funktionen, MySQL nicht
MariaDB wird mit nativen Vektorfunktionen ausgeliefert. Standard-MySQL verfügt nicht darüber, es sei denn, man nutzt ein spezialisiertes Cloud-Angebot, das KI-Erweiterungen hinzufügt.
Laravel vermeidet bewusst eine Ähnlichkeitsberechnung auf der PHP-Seite. Die Berechnung von Vektoren in PHP würde die Paginierung unterbrechen und die Anwendung ohne Vorwarnung verlangsamen. Das Auslösen eines Fehlers, wenn der Treiber die Operation nicht verarbeiten kann, bietet einen sichereren Fehlerfall.
Was MySQL-Nutzer jetzt tun können
Wenn Ihr Stack auf einfachem MySQL läuft, haben Sie drei realistische Möglichkeiten:
- Migration zu MariaDB – ein direkter Ersatz für die meisten MySQL-Workloads, der native Vektorsupport bietet und gleichzeitig dasselbe Ökosystem beibehält.
- Hinzufügen eines dedizierten Suchdienstes – betreiben Sie eine leichtgewichtige PostgreSQL-Instanz neben MySQL, ausschließlich für Ähnlichkeitsabfragen.
- Verzicht darauf – semantische Suche ist für viele Anwendungen optional; wenn der Nutzen die Betriebskosten nicht übersteigt, kann das Verbleiben bei MySQL die pragmatische Wahl sein.
Jede Option bringt Kompromisse bei der betrieblichen Komplexität, Latenz und dem Wartungsaufwand mit sich. Die Entscheidung hängt davon ab, wie zentral die Vektorsuche für das Wertversprechen Ihres Produkts ist.
Lehren für das API-Design
Die Änderung in Laravel veranschaulicht ein breiteres Designprinzip: Vermeiden Sie es, datenbankspezifische Prüfungen über die Kernlogik zu verstreuen. Wenn eine Funktion von den Fähigkeiten einer bestimmten Engine abhängt, kapseln Sie diese Abhängigkeit hinter einer Treiber-Schnittstelle. Der neue grammar-basierte Ansatz tut genau das und bereitet das Framework auf zukünftige Erweiterungen vor, ohne den Core Query Builder erneut anfassen zu müssen.
Entwickler, die eigene Pakete erstellen, sollten dies zur Kenntnis nehmen. Wenn Sie instanceof-Prüfungen für einen Datenbanktyp innerhalb Ihrer Service-Schicht finden, verlagern Sie diese Verantwortung auf den Treiber oder einen dedizierten Adapter. Dies hält die öffentliche API sauber und macht Ihren Code zukunftssicher.
