Это зависит от того, что вы имеете в виду, когда говорите «тип данных». Некоторые базы данных, такие как PostgreSQL, имеют тип данных JSON, который позволяет полнотекстовый поиск, механизм двоичного хранения, индексацию и полный набор операторов для доступа к данным. У Марии этого еще нет. Тип данных специально отслеживается MDEV-9144 .
Даже несмотря на это, привносит очень ограниченный тип в MySQL, от одного из сопровождающих ошибок,
Тип данных JSON прямо противоречит стандарту SQL, что говорит о том, что функции JSON_ * принимают строку в качестве аргумента. Кроме того, для быстрой работы
MariaDB не требуется двоичный JSON, согласно нашим тестам, наш анализатор JSON работает с текстовым JSON так же быстро, как MySQL с двоичным JSON. То есть в MariaDB можно было использовать VARCHAR или TEXT для JSON. Если требуется проверка, это можно сделать с помощью ограничения CHECK:
my_json_column TEXT CHECK (JSON_VALID(my_json_column))
Мы добавим JSON «тип» для совместимости с MySQL.
Из моего чтения, это не совсем точка бинарного JSON, давайте обратимся к документации MySQL
Бинарный формат структурирован так, чтобы сервер мог искать подобъекты или вложенные значения непосредственно по ключу или индексу массива, не считывая все значения до или после них в документе.
Опять же, PostgreSQLjsonb
делает гораздо больше, чем это.
Данные jsonb хранятся в разложенном двоичном формате, что делает его немного медленнее для ввода из-за дополнительных издержек преобразования, но значительно быстрее для обработки, поскольку повторное анализирование не требуется. jsonb также поддерживает индексирование, что может быть существенным преимуществом.
tldr; Maria DB еще не имеет тип JSON. Даже когда он получает «тип», это всего лишь тонкая оболочка для проверки текста (как json
тип PostgreSQL ). Нет никаких планов для бинарного типа JSON (например, PostgreSQL jsonb
), потому что разработчики, похоже, не понимают преимуществ.