
PostgreSQL ได้ปล่อย version 19 beta 1 ออกมาให้ทดลองใช้งาน
โดยมีความสามารถใหม่ ๆ และ ปรับปรุงความสามารถให้ดีขึ้น
ยกตัวอย่างเช่น
- REPACK CONCURRENTLY สำหรับการจัดการ table ขนาดใหญ่
- SQL/PGQ (Property Graph Queries)
- การจัดการ partition table
- ปรับปรุงเรื่องของ logical replication
- ปรับปรุงการทำงานของ Autovacuum ด้วย parallel-worker autovacuum
- COPY from และ COPY to สำหรับการ import/export ข้อมูล
- เพิ่มชุดคำสั่ง SQL เข้ามา เช่น
GROUP BY ALLและ INSERT … ON CONFLICT DO SELECT … RETURNING และปรับปรุงความเร็วในการ join และ aggregate ต่าง ๆ
มาลองใช้งานเล่นกันดูเล็กน้อย
มี docker image ให้ลองใช้งานแบบง่าย ๆ
เรื่องแรกที่ใช้บ่อย ๆ คือ partition table
โดยใน PostgreSQL นั้นใช้สำหรับการแยกข้อมูลออกเป็นกลุ่ม ๆ ตามการใช้งาน
ยกตัวอย่างเช่น แบ่งรายวัน รายเดือน หรือ ช่วงอายุ หรือ ช่วงของตัวเลขต่าง ๆ เป็นต้น
เพื่อลดขนาดของข้อมูล และ index ส่งผลให้การดึงข้อมูลรวดเร็วขึ้น
แต่เมื่อ partition ที่เราแบ่งนั้น ข้อมูลที่เกิดขึ้นจริงไม่เป็นไปตามที่คาดหวัง
ทำให้บาง partition มาก หรือ น้อย
หรือจำนวข้อมูลในแต่ละ partition สูงมากเกินไป
การใช้งานต้องมีการใช้งานข้าม partition มากขึ้น
นั่นส่งผลให้ประโยชน์ของ partition ลดลงไป หรือ ส่งปัญหามากกว่าแก้ปัญหา
ดังนั้นสิ่งที่ต้องทำคือการ merge และ split partition นั่นเอง
ซึ่งเพิ่มเข้ามาใน version 19 ให้ใช้งาน
โดยอยู่ในหมวดหมู่ของ partition mantenance
เรื่องที่สองคือ Graph Queries Without the Graph Database
เป็นความสามารถที่น่าสนใจ Property graph
ซึ่งเป็นแนวทางในการจัดเก็บและเข้าถึงข้อมูลในรูปแบบของ graph
ส่วนการจัดเก็บข้อมูลยังอยู่ในรูปแบบของ relational structure อยู่
สำหรับ use case ที่น่าสนใจ เช่น
- fraud detection
- recommendations
- network analysis
- permission graphs
- supply chains
- organization charts
เป็นอีกหนึ่งแนวทางในการแก้ไขปัญหาที่น่าสนใจ
ตัวอย่างการใช้งาน เป็นดังนี้
เริ่มด้วยการสร้าง table จัดเก็บข้อมูลแบบปกติ
จากนั้นทำการสร้าง Property graph ขึ้นมา
ซึ่งประกอบไปด้วย vertex และ edge ตามแนวคิดของ graph
ลองใช้งานกันดูครับ
และสามารถดูรายละเอียดเพิ่มเติมได้ที่ Release notes
Reference websites