เหตุใดปลั๊กอิน WordPress บางตัวจึงทิ้งตารางที่ถูกละเลยไว้ในฐานข้อมูล
เผยแพร่แล้ว: 2016-06-23บทวิจารณ์เกี่ยวกับปลั๊กอิน WordPress ในไดเร็กทอรีมาในรูปทรงและขนาดต่างๆ บางอย่างมีประโยชน์จริง ๆ ในขณะที่บางอย่างสั้นและตรงประเด็น ตัวอย่างเช่น บทวิจารณ์นี้จากผู้ใช้ WP eCommerce ล่าสุด "ฉันถอนการติดตั้งแล้วและออกจากตารางเด็กกำพร้า ฉันต้องล้างข้อมูลด้วยตนเอง ทำได้ไม่ดี”
บทวิจารณ์ประเภทนี้อาจมองข้ามได้ง่าย แต่ Justin Sainton ผู้ร่วมก่อตั้ง WP eCommerce ตอบกลับด้วยวิธีที่ดีที่สุด เขารับทราบข้อร้องเรียนของผู้ใช้และยอมรับว่าพวกเขานำเสนอประเด็นสำคัญที่ทีมสามารถจัดทำเป็นเอกสารได้ดีขึ้น
“เราตัดสินใจโดยเจตนาอย่างยิ่งที่จะไม่ลบตารางออกจากฐานข้อมูลเมื่อมีคนถอนการติดตั้งหรือปิดใช้งาน WP eCommerce” Sainton กล่าว
“หลายสาเหตุที่เราพบในช่วงหลายปีที่ผ่านมาส่งผลให้มีคนปิดการใช้งานและถอนการติดตั้งปลั๊กอิน แม้ว่า WordPress จะทำให้ชัดเจน (หากคุณมีรูทีนการถอนการติดตั้ง) ว่าคุณกำลังลบข้อมูล – นี่เป็นประกาศที่ง่ายต่อการเพิกเฉยเมื่อคุณอยู่ในภารกิจที่ต้องทำบางอย่าง
“ด้วยเหตุผลเหล่านั้น เราได้ทำการตัดสินใจโดยเจตนาที่จะไม่ลบข้อมูลใด ๆ (ซึ่งส่วนใหญ่จะเป็นอันตรายอย่างมากต่อธุรกิจหากถูกลบออกโดยไม่ได้ตั้งใจ) เมื่อถอนการติดตั้ง”
ตารางเด็กกำพร้าคืออะไร?
ตารางที่ถูกละเลยคือตารางที่เหลือโดยปลั๊กอินที่ไม่ได้ทำการล้างตารางเมื่อถอนการติดตั้ง ตารางเหล่านี้มักประกอบด้วยข้อมูล รวมทั้งแบบฟอร์ม รายการ การตั้งค่า ฯลฯ ตัวอย่างเช่น เมื่อฉันติดตั้ง GravityForms 2.0 บนเว็บไซต์ทดสอบของโรงเตี๊ยม ฉันพบว่าแบบฟอร์มที่ฉันสร้างเมื่อหกปีที่แล้วยังอยู่ในฐานข้อมูล ฉันไม่เพียงแต่ประหลาดใจ แต่ยังขอบคุณที่ฉันไม่ได้บอกให้ GravityForms ลบข้อมูลเมื่อหลายปีก่อน
การปิดใช้งานปลั๊กอินไม่ควรลบข้อมูล
มีความแตกต่างที่ชัดเจนระหว่างการปิดใช้งานปลั๊กอินและการถอนการติดตั้ง กระบวนการปิดใช้งานปลั๊กอินเกิดขึ้นบ่อยกว่าการถอนการติดตั้งส่วนใหญ่เนื่องจากกระบวนการแก้ไขปัญหา การปิดใช้งานปลั๊กอินไม่ควรลบข้อมูลใด ๆ ออกจากฐานข้อมูล ลองนึกดูว่ามันน่าหงุดหงิดแค่ไหนที่จะปิดการใช้งานปลั๊กอินแล้วต้องกำหนดค่าการตั้งค่าใหม่
การลบข้อมูลควรมีความชัดเจน
การลบข้อมูลควรเป็นการกระทำที่ชัดเจนจากผู้ใช้แทน นักพัฒนาปลั๊กอินที่ต้องการให้ผู้ใช้สามารถลบข้อมูลเมื่อถอนการติดตั้งสามารถลงทะเบียน hook ถอนการติดตั้งและเพิ่มไฟล์ Uninstall.php จากคู่มืออ้างอิงสำหรับนักพัฒนา WordPress เกี่ยวกับ Uninstall.php
หากไม่สามารถเขียนปลั๊กอินโดยไม่เรียกใช้โค้ดภายในปลั๊กอิน ปลั๊กอินควรสร้างไฟล์ชื่อ 'uninstall.php' ในโฟลเดอร์ปลั๊กอินหลัก ไฟล์นี้จะถูกเรียก (ถ้ามี) ในระหว่างกระบวนการถอนการติดตั้ง โดยข้ามการขอถอนการติดตั้ง ปลั๊กอิน เมื่อใช้ 'uninstall.php' ควรตรวจสอบค่าคงที่ 'WP_UNINSTALL_PLUGIN' เสมอ ก่อนดำเนินการ
นักพัฒนาที่ใช้วิธีนี้ควรให้ข้อความยืนยันที่ชัดเจนและรัดกุมแก่ผู้ใช้เพื่อเตือนว่าข้อมูลจะถูกลบออก ตัวอย่างที่ดีของปลั๊กอินที่ทำสิ่งนี้ได้ดีคือ GravityForms รูทีนการถอนการติดตั้งแยกจากกระบวนการปิดใช้งาน และคำเตือนจะแสดงให้เห็นอย่างชัดเจนต่อผู้ใช้ว่าข้อมูลจะสูญหาย

ในความคิดเห็นที่เผยแพร่ในโรงเตี๊ยมในปี 2013 คาร์ล แฮนค็อก ผู้ก่อตั้ง RocketGenius ได้อธิบายว่าทำไมพวกเขาจึงใช้กระบวนการถอนการติดตั้งของตนเองแทนการใช้ Uninstall.php ที่แนะนำ

ตัวอย่างเช่น เป็นเรื่องปกติที่เราจะปิดใช้งานและลบเวอร์ชันของ GF และส่วนเสริมในเครื่องทดสอบของเราเองผ่านตัวจัดการปลั๊กอิน จากนั้นอัปโหลดและติดตั้งเวอร์ชันต่างๆ ไม่ได้หมายความว่าเราต้องการสูญเสียข้อมูลทั้งหมดของเรา ดังนั้นเราจึงไม่ต้องการให้เกิดสิ่งนี้เมื่อเราลบปลั๊กอินในตัวจัดการปลั๊กอิน
นี่คือเหตุผลที่เราเลือกใช้การถอนการติดตั้งแบบเต็มเวอร์ชันของเราเองภายในพื้นที่การตั้งค่า Gravity Forms Settings ซึ่งทำให้ผู้ใช้ปลายทางเข้าใจได้ชัดเจนว่าจะลบข้อมูลทั้งหมดและลบตารางฐานข้อมูลทั้งหมด
ตารางที่ถูกละเลยมักจะไม่ส่งผลกระทบต่อประสิทธิภาพของไซต์
บางคนเชื่อว่าตารางที่ถูกละเลยมากเกินไปอาจส่งผลเสียต่อประสิทธิภาพของไซต์ได้ ฉันถาม Sainton ว่านี่เป็นเรื่องจริงหรือไม่ “โดยทั่วไปแล้ว ไม่” Sainton ตอบ
“มีบางกรณีที่จำนวนตารางที่มีอยู่ในฐานข้อมูลของคุณอาจส่งผลกระทบต่อประสิทธิภาพของการสืบค้นข้อมูลบางอย่าง – แต่การสืบค้นประเภทเหล่านั้นไม่ควรถูกเรียกใช้ในบริบทส่วนใหญ่ – แน่นอนว่าไม่ใช่ในบริบทส่วนใหญ่ที่นักพัฒนา WordPress จะสนใจ ”
ตารางที่ถูกละเลยและข้อมูลภายในนั้นอยู่ในฐานข้อมูล WordPress ซึ่งเป็นสิ่งที่ผู้ใช้ทั่วไปส่วนใหญ่ไม่ค่อยจะเจาะจง ส่วนใหญ่อาจไม่ทราบจำนวนข้อมูลและตารางที่อยู่ในฐานข้อมูลซึ่งกินเนื้อที่เป็นไบต์ เป็นเรื่องดีที่รู้ว่าในกรณีส่วนใหญ่ ตารางที่ไม่มีผู้ดูแลจะไม่ทำให้ประสิทธิภาพของไซต์ลดลง และไม่ใช่เรื่องที่ต้องกังวลมากนัก
ทำความสะอาดโต๊ะกำพร้า
มีปลั๊กอินจำนวนหนึ่งที่ปรับให้เหมาะสมและทำความสะอาดตารางที่ถูกละเลยจากฐานข้อมูล การค้นหาคร่าวๆ ของไดเร็กทอรีปลั๊กอินให้ผลลัพธ์ดังต่อไปนี้
- WP-เพิ่มประสิทธิภาพ
- P3 (ตัวสร้างโปรไฟล์ประสิทธิภาพของปลั๊กอิน)
- WP-DBManager
- WP Performance Pack
มีปลั๊กอินมากกว่าที่ฉันแสดงไว้ที่นี่ แต่ปลั๊กอินแต่ละตัวโต้ตอบและจัดการฐานข้อมูล WordPress ฉันเรียนรู้จากประสบการณ์ว่าก่อนที่จะใช้ปลั๊กอินทำความสะอาดฐานข้อมูลและเพิ่มประสิทธิภาพ คุณควรสร้างข้อมูลสำรองทั้งหมดของไซต์ของคุณ
ครั้งหนึ่งฉันเคยใช้ปลั๊กอินทำความสะอาดฐานข้อมูล และถึงแม้ว่ามันจะทำงานได้ดี แต่ก็ได้ลบสิ่งที่ฉันไม่คาดคิดออกไป เช่น สถานะโพสต์แบบกำหนดเองที่สร้างโดย Edit Flow
กระบวนการถอนการติดตั้งควรเป็นแนวทางไดเรกทอรีปลั๊กอินหรือไม่
เช่นเดียวกับลิงก์การตั้งค่าในหน้าการจัดการปลั๊กอิน ปลั๊กอินจำนวนหนึ่งในไดเร็กทอรีไม่ได้ใช้ Uninstall.php หรือลงทะเบียนขอถอนการติดตั้ง ฉันเชื่อมั่นอย่างยิ่งว่าปลั๊กอินใดๆ ที่เพิ่มข้อมูลลงในฐานข้อมูลควรมีวิธีง่ายๆ ในการลบออก เป็นแนวทางว่าหากบังคับใช้จะเป็นประโยชน์ต่อผู้ใช้ด้วยการช่วยรักษาฐานข้อมูลที่สะอาดขึ้น
นักพัฒนาซอฟต์แวร์ โปรดแจ้งให้เราทราบในความคิดเห็นว่าคุณทำอะไรเพื่อให้ผู้ใช้สามารถลบข้อมูลออกจากฐานข้อมูลหลังจากที่ปลั๊กอินของคุณเพิ่มเข้าไป
