Was Konkurrent PostgreSQL schon längere Zeit beherrscht, nämlich Funktionen für die Verarbeitung des JSON-Formats (JavaScript Object Notation), fehlt bei Oracles relationaler Datenbank MySQL bisher.
Ein Blog-Beitrag von Ulf Wendel bestätigt jetzt, dass daran gearbeitet wird. Wendel beschreibt ausführlich die im MySQL-Labor angebotenen JSON-Funktionen.
Eingebaut sind sie bisher als User-defined Functions (UDF), die man in einen laufenden MySQL-Server laden kann. Das klappte in einem Test auch mit MySQL 5.6.10, man muss also nicht unbedingt die kommende Version 5.7 verwenden.
Noch enthalten die UDFs jedoch einige Fehler und Ungereimtheiten. Beispielsweise bewertet JSON_VALID()
die Konformität von Strings oft falsch, das Suchen nach Werten klappt nicht zuverlässig und es fehlen dafür auch Komfortfunktionen wie reguläre Ausdrücke.
Außerdem kritisiert Wendel die Nutzung von TEXT/BLOB-Spalten für das Speichern von JSON, weil dadurch schon mittlere Dokumente außerhalb der aktuellen Speicherseite gespeichert würden, was zusätzlichen I/O-Traffic hervorruft. Bis die Technik für den Produktivbetrieb tauglich ist, müssen diese Bugs und Unzulänglichkeiten vom Tisch sein.
Wer als Entwickler an MySQL und seine Tools gewöhnt hat, wird sich freuen, diese Funktionalität demnächst auch bei der Mutter aller freien Datenbanken zu finden.
Vielen Dank für die Nachricht!
Richtig, MySQL 5.7 bringt ein paar Funktionen zur Arbeit mit JSON. Über die Labs-Releases versucht MySQL so früh wie möglich Einblicke zu gewähren. Man nimmt das gefährliche “ist nicht stabil” in Kauf, um noch während der Entwicklung Rückmeldungen zu bekommen.
Unter https://blogs.oracle.com/svetasmirnova/entry/json_udfs_first_feedback gibt es inzwischen die nächste Runde. Die Probleme bei der Suche haben sich teilweise als Bedienfehler erwiesen. Mark Callaghan, ein führender MySQL-Techniker bei Facebook, wandte zur TEXT/BLOB Speicherung inzwischen ein, daß nicht immer Off-Page gespeichert wird.
Es tut sich was, hoffentlich…