Nó phụ thuộc vào ý của bạn khi bạn nói "kiểu dữ liệu". Một số cơ sở dữ liệu như PostgreSQL, có kiểu dữ liệu JSON cho phép tìm kiếm toàn văn bản, cơ chế lưu trữ nhị phân, lập chỉ mục và bộ toán tử đầy đủ để truy cập dữ liệu. Maria chưa có điều đó. Kiểu dữ liệu cụ thể đang được theo dõi bởi MDEV-9144 .
Mặc dù vậy, mang đến một loại rất hạn chế cho MySQL, từ một trong những người duy trì lỗi,
Kiểu dữ liệu JSON mâu thuẫn trực tiếp với tiêu chuẩn SQL, nghĩa là, các hàm JSON_ * lấy một chuỗi làm đối số. Ngoài ra, MariaDB thông minh về tốc độ
không cần JSON nhị phân, theo điểm chuẩn của chúng tôi, trình phân tích cú pháp JSON của chúng tôi cũng nhanh như JSON văn bản như MySQL trên JSON nhị phân. Đó là, trong MariaDB, người ta có thể VARCHAR hoặc TEXT cho JSON. Nếu cần xác thực, người ta có thể thực hiện với ràng buộc KIỂM TRA:
my_json_column TEXT CHECK (JSON_VALID(my_json_column))
Tuy nhiên, chúng tôi sẽ thêm "loại" JSON để tương thích với MySQL.
Từ cách đọc của tôi, đó không chính xác là điểm của JSON nhị phân, hãy tham khảo các tài liệu MySQL
Định dạng nhị phân được cấu trúc để cho phép máy chủ tra cứu các tiểu dự án hoặc các giá trị lồng nhau trực tiếp theo khóa hoặc chỉ mục mảng mà không cần đọc tất cả các giá trị trước hoặc sau chúng trong tài liệu.
Một lần nữa, PostgreSQL cònjsonb
làm được nhiều hơn thế.
dữ liệu jsonb được lưu trữ ở định dạng nhị phân phân tách khiến đầu vào chậm hơn một chút do chi phí chuyển đổi được thêm vào, nhưng nhanh hơn đáng kể để xử lý, vì không cần phải xử lý lại. jsonb cũng hỗ trợ lập chỉ mục, đây có thể là một lợi thế đáng kể.
tldr; Maria DB chưa có loại JSON. Ngay cả khi nó có "kiểu", nó chỉ là một trình bao bọc mỏng trên xác thực văn bản (như json
kiểu của PostgreQuery ). Không có kế hoạch cho loại JSON nhị phân (như PostgreSQL jsonb
) vì các nhà phát triển dường như không hiểu được lợi thế.