PlusMagi's Blog By Pitt Phunsanit Backend,Cloud Computing,Technology WordPress: ลบ post backup version (revisions)

WordPress: ลบ post backup version (revisions)

ในฐานะนักพัฒนาและ System Architect เราทราบดีว่าการจัดการประสิทธิภาพของฐานข้อมูล (Database Optimization) เป็นสิ่งสำคัญอย่างยิ่งต่อความเร็วและความเสถียรของเว็บไซต์ WordPress แม้ว่าระบบ Revisions (เวอร์ชันสำรองของโพสต์) จะมีประโยชน์อย่างมากในการย้อนกลับหรือเปรียบเทียบเนื้อหาเหมือนระบบ Git แต่เมื่อเวลาผ่านไป Revisions เหล่านี้จะสะสมจำนวนมหาศาลในตารางฐานข้อมูล ทำให้เกิดภาระต่อพื้นที่จัดเก็บและลดประสิทธิภาพการทำงานของเว็บไซต์ลงได้

WordPress Revisions คืออะไร และทำไมต้องลบ?

Revisions คือกลไกที่ WordPress ใช้ในการบันทึกทุกการเปลี่ยนแปลงของโพสต์ ไม่ว่าจะเป็นการแก้ไขคำ การเพิ่มรูปภาพ หรือการปรับแต่งใดๆ ข้อมูลเหล่านี้จะถูกจัดเก็บไว้ในตารางหลักของโพสต์ (โดยทั่วไปคือ wp_posts) โดยมีค่า post_type กำหนดเป็น revision

ปัญหาหลัก: เมื่อมีโพสต์จำนวนมากและมีการแก้ไขบ่อยครั้ง Revisions จะเพิ่มขึ้นเป็นร้อยหรือเป็นพันรายการ ซึ่งทำให้ขนาดของตาราง wp_posts ใหญ่เกินความจำเป็น ส่งผลให้การ Query ข้อมูลพื้นฐาน (เช่น การโหลดหน้าแรก) ต้องใช้เวลาในการสแกนข้อมูลจำนวนมากเกินไป

ขั้นตอนการลบ Revisions ด้วย PostgreSQL

การลบ Revisions ควรทำด้วยความระมัดระวังและควรดำเนินการในสภาพแวดล้อม Staging ก่อนเสมอ เนื่องจากเป็นการดำเนินการระดับฐานข้อมูล (Database Operation) โดยตรง เราจะใช้ไวยากรณ์ของ PostgreSQL ในการตรวจสอบและลบข้อมูล

1. ตรวจสอบจำนวน Revisions ที่มีอยู่

ก่อนการลบใดๆ สิ่งแรกที่ต้องทำคือการนับจำนวน Revisions เพื่อประเมินขนาดของข้อมูลที่จะถูกลบ การใช้คำสั่ง SELECT จะช่วยให้เราเห็นภาพรวมของปัญหา:

SQL

SELECT COUNT(*) FROM wp_posts WHERE post_type = 'revision';

หากตัวเลขที่ได้มีจำนวนสูง (หลักหมื่นหรือแสน) แสดงว่าการดำเนินการต่อไปมีความจำเป็นอย่างยิ่ง

2. คำสั่งลบ Revisions (The Deletion Command)

เมื่อมั่นใจแล้วว่าต้องการลบข้อมูล Revisions ทั้งหมดออกจากฐานข้อมูล สามารถใช้คำสั่ง DELETE ได้เลย คำสั่งนี้จะลบทุกรายการที่มี post_type เป็น revision ออกจากตาราง wp_posts:

SQL

DELETE FROM wp_posts WHERE post_type = 'revision';

ข้อควรระวัง: คำสั่งนี้เป็นการลบข้อมูลแบบถาวรและไม่สามารถย้อนกลับได้ (Irreversible) ควรสำรองข้อมูลฐานข้อมูลก่อนเสมอ

บทสรุปและข้อแนะนำเพิ่มเติม

การลบ Revisions เป็นวิธีที่มีประสิทธิภาพในการปรับปรุงประสิทธิภาพของฐานข้อมูล WordPress อย่างรวดเร็ว อย่างไรก็ตาม หลังจากดำเนินการลบข้อมูลขนาดใหญ่ด้วยคำสั่ง SQL แล้ว ควรดำเนินการ Optimize Database เพิ่มเติมด้วยปลั๊กอินหรือเครื่องมือจัดการฐานข้อมูล (เช่น phpMyAdmin หรือ pgAdmin) เพื่อให้แน่ใจว่าโครงสร้างของตารางได้รับการจัดระเบียบอย่างสมบูรณ์

การทำความสะอาดฐานข้อมูลเป็นส่วนหนึ่งของการบำรุงรักษาเชิงรุก (Proactive Maintenance) ที่ช่วยให้เว็บไซต์ของคุณทำงานได้อย่างรวดเร็วและเสถียรภาพสูงสุดในระยะยาว