Es kommt darauf an, was Sie mit "Datentyp" meinen. Einige Datenbanken wie PostgreSQL verfügen über einen JSON-Datentyp, der eine Volltextsuche, einen Binärspeichermechanismus, eine Indexierung und eine vollständige Reihe von Operatoren für den Zugriff auf die Daten ermöglicht. Maria hat das noch nicht. Der Datentyp wird speziell von MDEV-9144 verfolgt .
Auch das bringt einen sehr eingeschränkten Typ für MySQL, von einem der Bug-Betreuer,
Der JSON-Datentyp widerspricht direkt dem SQL-Standard, der besagt, dass JSON_ * -Funktionen eine Zeichenfolge als Argument verwenden. Außerdem benötigt MariaDB im Hinblick auf die Geschwindigkeit
kein binäres JSON. Gemäß unseren Benchmarks ist unser JSON-Parser für Text-JSON genauso schnell wie MySQL für binäres JSON. Das heißt, in MariaDB könnte man VARCHAR oder TEXT für JSON verwenden. Wenn eine Validierung erforderlich ist, kann diese mit einer CHECK-Einschränkung durchgeführt werden:
my_json_column TEXT CHECK (JSON_VALID(my_json_column))
Aus Gründen der MySQL-Kompatibilität werden wir jedoch JSON "type" hinzufügen.
Nach meiner Lektüre ist das nicht genau der Punkt, an dem sich JSON auf die MySQL-Dokumente bezieht
Das Binärformat ist so aufgebaut, dass der Server Unterobjekte oder verschachtelte Werte direkt nach Schlüssel- oder Arrayindex abrufen kann, ohne alle Werte vor oder nach diesen im Dokument zu lesen.
Auch hier leistet PostgreSQL jsonb
viel mehr.
jsonb-Daten werden in einem zerlegten Binärformat gespeichert, das die Eingabe aufgrund des zusätzlichen Konvertierungsaufwands etwas verlangsamt, die Verarbeitung jedoch erheblich beschleunigt, da kein erneutes Parsen erforderlich ist. jsonb unterstützt auch die Indizierung, was ein erheblicher Vorteil sein kann.
tldr; Maria DB hat noch keinen JSON-Typ. Selbst wenn es den "Typ" bekommt, ist es nur ein dünner Wrapper über einer Textvalidierung (wie der json
Typ von PostgreSQL ). Es gibt keine Pläne für einen binären JSON-Typ (wie PostgreSQL jsonb
), da die Entwickler die Vorteile anscheinend nicht verstehen.