ขึ้นอยู่กับสิ่งที่คุณหมายถึงเมื่อคุณพูดว่า "ชนิดข้อมูล" ฐานข้อมูลบางอย่างเช่น 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 "type" เพื่อความเข้ากันได้ของ MySQL
จากการอ่านของฉันนั่นไม่ใช่จุดของไบนารี JSON ลองอ้างอิงเอกสาร MySQL
รูปแบบไบนารีมีโครงสร้างเพื่อให้เซิร์ฟเวอร์สามารถค้นหา subobjects หรือค่าที่ซ้อนกันโดยตรงโดยคีย์หรือดัชนีอาร์เรย์โดยไม่ต้องอ่านค่าทั้งหมดก่อนหรือหลังพวกเขาในเอกสาร
อีกครั้งของ PostgreSQLjsonb
ไม่มากไปกว่านั้น
ข้อมูล jsonb ถูกจัดเก็บในรูปแบบไบนารีที่แยกย่อยซึ่งทำให้อินพุตช้าลงเล็กน้อยเนื่องจากค่าใช้จ่ายในการแปลงเพิ่ม แต่ประมวลผลได้เร็วกว่ามากเนื่องจากไม่จำเป็นต้องทำการวิเคราะห์ซ้ำ jsonb ยังรองรับการจัดทำดัชนีซึ่งอาจเป็นข้อได้เปรียบที่สำคัญ
TLDR; Maria DB ยังไม่มีประเภท JSON แม้ว่าจะได้รับ "ประเภท" มันเป็นเพียงเสื้อคลุมบาง ๆ มากกว่าการตรวจสอบข้อความ (เช่นjson
ประเภทของ PostgreSQL ) ไม่มีแผนสำหรับประเภท JSON แบบไบนารี (เช่น PostgreSQL jsonb
) เนื่องจากผู้พัฒนาดูเหมือนจะไม่เข้าใจข้อดี