Chuyển đến nội dung chính
Quay lại danh sách bài viết

Partitioning ตารางใหญ่ใน PostgreSQL เมื่อใดจึงคุ้ม

Partitioning แบ่งตารางใหญ่เป็นส่วนย่อยตามคีย์ เช่น วันที่หรือช่วงค่า อธิบายหลักการใช้งาน กรณีที่เหมาะ และข้อควรระวังจากเอกสารทางการ

Partitioning ตารางใหญ่ใน PostgreSQL เมื่อใดจึงคุ้ม

Partitioning แบ่งตารางใหญ่เป็นส่วนย่อยตามคีย์ เช่น วันที่หรือช่วงค่า เหมาะกับข้อมูลเหตุการณ์ที่เพิ่มตามเวลาและต้องลบข้อมูลเก่าเป็นช่วง บทความนี้สรุปแนวคิดจากเอกสารทางการของ PostgreSQL และจุดที่ควรตรวจเมื่อนำไปใช้จริง

ภาพรวม

PostgreSQL มีทั้งกลไกธุรกรรม การจัดเก็บ และตัววางแผนคิวรี การเปลี่ยนค่าเพียงจุดหนึ่งอาจกระทบประสิทธิภาพ การกู้คืน และความถูกต้องของข้อมูล

หัวข้อนี้ตอบโจทย์เฉพาะเรื่อง: Partitioning แบ่งตารางใหญ่เป็นส่วนย่อยตามคีย์ เช่น วันที่หรือช่วงค่า จึงควรเริ่มจากปัญหาที่ต้องแก้และผลลัพธ์ที่คาดหวัง ไม่ใช่เพียงเปิดฟีเจอร์เพราะมีอยู่ในเครื่องมือ

หลักการทำงาน

planner สามารถตัด partition ที่ไม่เกี่ยวข้องออกจากแผนเมื่อเงื่อนไขคิวรีสอดคล้องกับคีย์แบ่ง

ให้ตรวจทั้งสถานะที่เครื่องมือรายงานและผลลัพธ์ปลายทางที่ผู้ใช้หรือระบบอื่นได้รับ หากสองส่วนไม่ตรงกัน ควรกลับไปตรวจค่าตั้งต้นและขอบเขตที่ฟีเจอร์นี้รับผิดชอบก่อนเปลี่ยนค่าเพิ่มเติม

เหมาะกับงานแบบไหน

เหมาะกับข้อมูลเหตุการณ์ที่เพิ่มตามเวลาและต้องลบข้อมูลเก่าเป็นช่วง

ก่อนทดลอง ให้ระบุสิ่งที่จะใช้วัดผล เช่น เวลาตอบสนอง ความพร้อมใช้งาน ความถูกต้องของข้อมูล หรือภาระการดูแล แล้วเทียบกับสภาพเดิม วิธีนี้ช่วยให้รู้ว่าฟีเจอร์แก้ปัญหาจริงหรือย้ายภาระไปอีกจุดหนึ่ง

ขั้นตอนนำไปใช้

  1. เก็บค่าปัจจุบันและตัวเลขก่อนเปลี่ยน เช่น latency และขนาดตาราง
  2. ทดสอบกับข้อมูลที่มีขนาดและรูปแบบใกล้ production
  3. เตรียม backup ที่กู้คืนได้ และตรวจสถิติหลังเปลี่ยน

เริ่มจากขอบเขตเล็กและเก็บผลทดสอบไว้กับการเปลี่ยนแปลง หากจะใช้ใน production ให้กำหนดผู้ติดตามผลและเงื่อนไขที่จะหยุดการขยายการใช้งาน

ข้อควรระวัง

จำนวน partition มากเกินไปเพิ่มภาระ metadata และการดูแล อย่าแบ่งโดยไม่มีรูปแบบคิวรีรองรับ

แปลงข้อควรระวังนี้เป็นรายการตรวจในการทบทวนงาน เพราะปัญหาจากค่าตั้งต้นอาจไม่แสดงทันทีในสภาพแวดล้อมทดสอบ

สรุป

Partitioning แบ่งตารางใหญ่เป็นส่วนย่อยตามคีย์ เช่น วันที่หรือช่วงค่า เหมาะกับข้อมูลเหตุการณ์ที่เพิ่มตามเวลาและต้องลบข้อมูลเก่าเป็นช่วง ก่อนนำไปใช้กับงานหลัก ควรตรวจผลตามขั้นตอนข้างต้นและทบทวนข้อจำกัดของระบบที่มีอยู่

อ่านเพิ่มเติม: เอกสารทางการของ PostgreSQL

Chia sẻ bài viết:
Xem thêm bài viết