เชี่ยวชาญประเภท JSONB ของ PostgreSQL ในบทความเดียว
เรียนรู้วิธีใช้ประเภท JSONB ของ PostgreSQL เพื่อสต็อก ถาม และจัดการข้อมูล JSON ได้อย่างมีประสิทธิภาพ
เรียนรู้วิธีใช้ประเภท JSONB ของ PostgreSQL เพื่อสต็อก ถาม และจัดการข้อมูล JSON ได้อย่างมีประสิทธิภาพ
ในพัฒนาซอฟต์แวร์ยุคใหม่ การจัดการและจัดเก็บข้อมูลที่ไม่เป็นโครงสร้างกำลังกลายเป็นสิ่งที่พบได้บ่อยขึ้น ประเภท JSONB ของ PostgreSQL ให้เครื่องมือที่มีประสิทธิภาพสำหรับนักพัฒนาในการสต็อกและถามข้อมูล JSON ได้อย่างมีประสิทธิภาพ ในบทความนี้ เราจะเจาะลึกแนวคิดและการใช้งานประเภท JSONB และสาธิตคุณสมบัติที่ทรงพลังผ่านตัวอย่างโค้ดเฉพาะ
JSONB เป็นประเภทข้อมูลของ PostgreSQL ที่จัดเก็บข้อมูล JSON ในรูปแบบไบนารี ซึ่งต่างจากประเภท JSON ปกติ JSONB มีประสิทธิภาพมากกว่าในงานสอบถามและการจัดการ มันรองรับตัวดำเนินการและฟังก์ชันที่หลากหลายที่ทำให้การจัดการข้อมูล JSON ง่ายขึ้น นอกจากนี้ JSONB ยังรองรับดัชนีหลายประเภท ได้แก่ ดัชนี B-tree, Hash, GIN, และ GiST ทำให้ประสิทธิภาพการสอบถามดีขึ้นไปอีก
ก่อนอื่น มาสร้างตารางที่มีคอลัมน์ JSONB กัน สมมติว่าเรามีตาราง products เพื่อจัดเก็บข้อมูลผลิตภัณฑ์ โดยรายละเอียดของผลิตภัณฑ์จัดเก็บโดยใช้ประเภท JSONB
เราสามารถแทรกข้อมูล JSON ลงในฟิลด์ JSONB โดยใช้คำสั่ง INSERT ง่าย ๆ
เราสามารถใช้ตัวดำเนินการ ->> เพื่อดึงค่าข้อความจากฟิลด์ JSONB ตัวอย่างต่อไปนี้แสดงวิธีดึงข้อมูลแบรนด์ของผลิตภัณฑ์
เราสามารถใช้การผสมผสานของตัวดำเนินการ -> และ ->> เพื่อดึงค่าที่ซ้อนกันในโครงสร้าง JSON ตัวอย่างต่อไปนี้แสดงวิธีดึงข้อมูล CPU ของผลิตภัณฑ์
ด้วยการใช้ตัวดำเนินการ #>> เราสามารถดึงค่าจากเส้นทางที่เจาะจงภายในข้อมูล JSON ตัวอย่างต่อไปนี้แสดงวิธีดึงข้อมูลสตอเรจ
@> สำหรับการสอบถามการครอบคลุมตัวดำเนินการ @> ตรวจสอบว่าออบเจ็กต์ JSONB หนึ่งครอบคลุมอีกออบเจ็กต์หนึ่ง ตัวอย่างต่อไปนี้แสดงวิธีสอบถามผลิตภัณฑ์ของแบรนด์เฉพาะ
เราสามารถใช้ฟังก์ชัน jsonb_set เพื่ออัปเดตข้อมูล JSONB ฟังก์ชันนี้อัปเดตค่าที่เส้นทางที่กำหนดไว้ ตัวอย่างต่อไปนี้แสดงวิธีอัปเดตข้อมูลสตอเรจของผลิตภัณฑ์
เราสามารถใช้ตัวดำเนินการ - เพื่อลบฟิลด์ระดับบนจากข้อมูล JSONB ตัวดำเนินการนี้ลบคีย์ที่ระบุจากออบเจ็กต์ JSONB ตัวอย่างต่อไปนี้แสดงวิธีลบฟิลด์ระดับบนจากรายละเอียดผลิตภัณฑ์
เราสามารถใช้ตัวดำเนินการ #- เพื่อลบองค์ประกอบของเส้นทางเฉพาะจากข้อมูล JSONB ตัวดำเนินการนี้ลบคีย์ที่เส้นทางที่กำหนดไว้ ตัวอย่างต่อไปนี้แสดงวิธีลบข้อมูล CPU จากข้อกำหนดผลิตภัณฑ์
ข้อมูล JSONB สามารถรวม array ได้ และเราสามารถใช้งานตัวดำเนินการเกี่ยวกับ array เพื่อจัดการกับข้อมูลเหล่านี้ ตัวอย่างต่อไปนี้แสดงวิธีสต็อกและสอบถามผลิตภัณฑ์ที่มีแท็กหลายรายการ
ในตัวอย่างข้างต้น คุณยังสามารถใช้ตัวดำเนินการ ? เพื่อเช็คว่าหมายเลข array ของ JSONB มีองค์ประกอบเฉพาะหรือไม่:
เราสามารถใช้ตัวดำเนินการ || เพื่อรวมสองออบเจ็กต์ JSONB ตัวดำเนินการนี้รวมสองออบเจ็กต์ JSONB เข้าด้วยกัน ตัวอย่างต่อไปนี้แสดงวิธีรวมข้อมูลสเปคใหม่เข้าไปในรายละเอียดผลิตภัณฑ์ที่มีอยู่
เราสามารถใช้ฟังก์ชันการรวมเพื่อประมวลผลข้อมูล JSONB เช่น การนับจำนวนผลิตภัณฑ์ต่อแบรนด์
เพื่อปรับปรุงประสิทธิภาพการสอบถามด้วยข้อมูล JSONB เราสามารถสร้างดัชนีบนคีย์เฉพาะภายในฟิลด์ JSONB การเลือกประเภทของดัชนีที่เหมาะสมเป็นสิ่งสำคัญสำหรับความต้องการสอบถามที่ต่างกัน
การเลือกและสร้างดัชนีอย่างเหมาะสมสามารถเพิ่มประสิทธิภาพการสอบถามข้อมูล JSONB อย่างมาก
ดัชนี GIN เหมาะสำหรับเร่งการสอบถามที่เกี่ยวกับข้อมูลหลายค่าและ array ตัวอย่างเช่น เราสามารถสร้างดัชนี GIN สำหรับ array tags ที่กล่าวถึงก่อนหน้านี้เพื่อเร่งการสอบถามเกี่ยวกับองค์ประกอบ array
สำหรับการสอบถามคู่คีย์-ค่าแบบง่าย ดัชนี B-tree ก็สามารถช่วยเพิ่มประสิทธิภาพได้อย่างมาก ดัชนี B-tree เหมาะสำหรับการสอบถามช่วงและการดำเนินการเรียงลำดับ ตัวอย่างต่อไปนี้แสดงวิธีสร้างดัชนี B-tree สำหรับคีย์ model ในฟิลด์ details
ประเภท JSONB ของ PostgreSQL ให้ทางออกที่ทรงพลังและยืดหยุ่นสำหรับการจัดการข้อมูล JSON ด้วยการแนะนำและตัวอย่างในบทความนี้ คุณควรมีความเข้าใจครอบคลุมถึงวิธีการใช้ประเภท JSONB การเชี่ยวชาญในเทคนิคเหล่านี้จะช่วยให้คุณจัดการและสอบถามข้อมูลที่ไม่มีโครงสร้างได้อย่างมีประสิทธิภาพ เพิ่มประสิทธิภาพและความยืดหยุ่นของแอปพลิเคชันของคุณ