To zależy od tego, co masz na myśli, mówiąc „typ danych”. Niektóre bazy danych, takie jak PostgreSQL, mają typ danych JSON, który umożliwia wyszukiwanie pełnotekstowe, binarny mechanizm przechowywania, indeksowanie i pełny zestaw operatorów w celu uzyskania dostępu do danych. Maria jeszcze tego nie ma. Typ danych jest konkretnie śledzony przez MDEV-9144 .
Mimo to, zapewnia bardzo ograniczony typ MySQL, od jednego z opiekunów błędów,
Typ danych JSON jest bezpośrednio sprzeczny ze standardem SQL, co oznacza, że funkcje JSON_ * przyjmują ciąg znaków jako argument. Ponadto pod względem szybkości
MariaDB nie potrzebuje binarnego JSON, zgodnie z naszymi testami porównawczymi, nasz parser JSON działa tak szybko na tekst JSON jak MySQL na binarnym JSON. Oznacza to, że w MariaDB można użyć VARCHAR lub TEXT dla JSON. Jeśli potrzebna jest walidacja, można to zrobić z ograniczeniem CHECK:
my_json_column TEXT CHECK (JSON_VALID(my_json_column))
Dodamy jednak „typ” JSON dla zgodności z MySQL.
Z mojej lektury nie jest to dokładnie sens binarnego JSON-a, zajrzyjmy do dokumentów MySQL
Format binarny ma strukturę umożliwiającą serwerowi wyszukiwanie podobiektów lub zagnieżdżonych wartości bezpośrednio według indeksu klucza lub tablicy bez odczytywania wszystkich wartości przed lub po nich w dokumencie.
Ponownie PostgreSQLjsonb
robi o wiele więcej.
Dane jsonb są przechowywane w zdekomponowanym formacie binarnym, co sprawia, że wprowadzanie danych jest nieco wolniejsze z powodu dodatkowego obciążenia konwersji, ale znacznie szybsze w przetwarzaniu, ponieważ nie jest wymagana ponowna analiza. jsonb obsługuje również indeksowanie, co może być znaczącą zaletą.
tldr; Maria DB nie ma jeszcze typu JSON. Nawet gdy otrzymuje „typ”, jest to po prostu cienkie opakowanie do sprawdzania poprawności tekstu (jak json
typ PostgreSQL ). Nie ma planów binarnego typu JSON (takich jak PostgreSQL jsonb
), ponieważ deweloperzy najwyraźniej nie rozumieją zalet.