ลบข้อมูลที่เก็บไว้เก่ากว่า 1 เดือนทิ้งไปด้วย mysql

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

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

DELETE e FROM events e INNER JOIN positions p ON p.id=e.positionid WHERE p.devicetime < DATE_ADD(NOW(), INTERVAL -12 MONTH); 
DELETE FROM positions WHERE devicetime < DATE_ADD(NOW(), INTERVAL -12 MONTH);
UPDATE devices SET positionid = NULL WHERE positionid NOT IN (SELECT id FROM pos   itions);

ตัวอย่างข้างต้นผู้เขียนได้ทำการลบข้อมูลออกจากดาต้าเบสที่เก็บมากกว่า 1 เดือนออก เพื่อรักษาพื้นที่ฮาร์ดดิสก์ทั้งหมดไม่ให้เต็ม หรือต้องลงทุนใหม่ในระยะสั้นหรือระยะยาว เนื้อหาดี ๆ เหล่านี้ได้รับการสนับสนุนจาก บจก.ไทย พรอสเพอรัส ไอที พร้อมยังมีเวบบล็อกดี ๆ พูดถึงประโยชน์ของการนำระบบจีพีเอสติดตามรถไปใช้งาน พบกันได้ที่ https://thaigpstrackers.com



Previous
Next Post »