Це залежить від того, що ви маєте на увазі, коли ви говорите "тип даних". Деякі бази даних, такі як PostgreSQL, мають тип даних JSON, який дозволяє отримати повний текст, механізм двійкового зберігання, індексацію та повний набір операторів для доступу до даних. Марія ще цього не має. Тип даних спеціально відслідковується MDEV-9144 .
Незважаючи на те, що це дуже обмежений тип для MySQL від одного з підтримувачів помилок,
Тип даних JSON прямо суперечить стандарту SQL, що говорить про те, що функції JSON_ * приймають рядок як аргумент. Крім того, MariaDB для швидкої роботи
не потребує бінарного JSON, згідно з нашими орієнтирами, наш аналізатор JSON настільки швидкий на тексті JSON, як і MySQL на двійковому JSON. Тобто, у MariaDB можна було б VARCHAR або TEXT для JSON. Якщо потрібна перевірка, це можна зробити з обмеженням ПЕРЕВІРИТИ:
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
), оскільки розробники, схоже, не розуміють переваг.