ใน MySQL 5.7 มีการเพิ่มประเภทข้อมูลใหม่สำหรับการจัดเก็บข้อมูล JSON ในตารางMySQL เห็นได้ชัดว่าจะเป็นการเปลี่ยนแปลงที่ดีใน MySQL พวกเขาระบุประโยชน์บางอย่าง
การตรวจสอบเอกสาร - เฉพาะเอกสาร JSON ที่ถูกต้องเท่านั้นที่สามารถจัดเก็บในคอลัมน์ JSON คุณจึงได้รับการตรวจสอบความถูกต้องของข้อมูลโดยอัตโนมัติ
การเข้าถึงที่มีประสิทธิภาพ - ที่สำคัญกว่านั้นคือเมื่อคุณจัดเก็บเอกสาร JSON ในคอลัมน์ JSON เอกสารนั้นจะไม่ถูกจัดเก็บเป็นค่าข้อความธรรมดา แต่จะถูกเก็บไว้ในรูปแบบไบนารีที่ปรับให้เหมาะสมซึ่งช่วยให้สามารถเข้าถึงสมาชิกวัตถุและองค์ประกอบอาร์เรย์ได้เร็วขึ้น
ประสิทธิภาพ - ปรับปรุงประสิทธิภาพการสืบค้นของคุณโดยการสร้างดัชนีสำหรับค่าภายในคอลัมน์ JSON สามารถทำได้ด้วย“ ดัชนีการทำงาน” ในคอลัมน์เสมือน
ความสะดวก - ไวยากรณ์แบบอินไลน์เพิ่มเติมสำหรับคอลัมน์ JSON ทำให้การรวมคิวรีเอกสารภายใน SQL ของคุณเป็นเรื่องปกติมาก ตัวอย่างเช่น (features.feature คือคอลัมน์ JSON):
SELECT feature->"$.properties.STREET" AS property_street FROM features WHERE id = 121254;
ว้าว ! พวกเขามีคุณสมบัติที่ยอดเยี่ยมบางอย่าง ตอนนี้จัดการข้อมูลได้ง่ายขึ้น ตอนนี้สามารถจัดเก็บข้อมูลที่ซับซ้อนมากขึ้นในคอลัมน์ได้แล้ว ดังนั้น MySQL จึงได้รับการปรุงแต่งด้วย NoSQL
ตอนนี้ฉันสามารถจินตนาการถึงข้อความค้นหาสำหรับข้อมูล JSON ได้
SELECT * FROM t1
WHERE JSON_EXTRACT(data,"$.series") IN
(
SELECT JSON_EXTRACT(data,"$.inverted")
FROM t1 | {"series": 3, "inverted": 8}
WHERE JSON_EXTRACT(data,"$.inverted")<4 );
ดังนั้นฉันสามารถจัดเก็บความสัมพันธ์เล็ก ๆ น้อย ๆ ในคอลัมน์ json ได้หรือไม่? สบายดีมั้ย? มันทำลาย normalization หากเป็นไปได้แล้วผมคิดว่ามันจะทำหน้าที่เหมือน NoSQL ในคอลัมน์ ฉันต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับคุณลักษณะนี้ ข้อดีข้อเสียของประเภทข้อมูล MySQL JSON
Now it is possible to store more complex data in column
. ระวัง