Cela dépend de ce que vous voulez dire lorsque vous dites "type de données". Certaines bases de données comme PostgreSQL, ont un type de données JSON qui permet la recherche en texte intégral, un mécanisme de stockage binaire, l'indexation et une suite complète d'opérateurs pour accéder aux données. Maria n'a pas encore ça. Le type de données est spécifiquement suivi par MDEV-9144 .
Même si cela apporte un type très limité à MySQL, de l'un des responsables de bogues,
Le type de données JSON contredit directement la norme SQL, c'est-à-dire que les fonctions JSON_ * prennent une chaîne en argument. De plus, MariaDB en termes de vitesse
n'a pas besoin de JSON binaire, selon nos benchmarks, notre analyseur JSON est aussi rapide sur JSON texte que MySQL sur JSON binaire. Autrement dit, dans MariaDB, on pourrait VARCHAR ou TEXT pour JSON. Si une validation est nécessaire, on peut le faire avec une contrainte CHECK:
my_json_column TEXT CHECK (JSON_VALID(my_json_column))
Nous ajouterons cependant le "type" JSON pour la compatibilité avec MySQL.
D'après ma lecture, ce n'est pas exactement le point de JSON binaire, nous allons nous référer aux documents MySQL
Le format binaire est structuré pour permettre au serveur de rechercher des sous-objets ou des valeurs imbriquées directement par index de clé ou de tableau sans lire toutes les valeurs avant ou après dans le document.
Encore une fois, PostgreSQLjsonb
fait bien plus que cela.
Les données jsonb sont stockées dans un format binaire décomposé qui les rend légèrement plus lentes à entrer en raison de la surcharge de conversion ajoutée, mais nettement plus rapides à traiter, car aucune nouvelle analyse n'est nécessaire. jsonb prend également en charge l'indexation, ce qui peut être un avantage significatif.
tldr; Maria DB n'a pas encore de type JSON. Même quand il obtient le "type", c'est juste une enveloppe mince sur une validation de texte (comme le json
type de PostgreSQL ). Il n'y a pas de plan pour un type JSON binaire (comme celui de PostgreSQL jsonb
) car les développeurs ne comprennent apparemment pas les avantages.