Database Optimization เทคนิคล้างขยะหลังบ้าน คืนชีพเว็บอืดให้โหลดไว

Database Optimization เทคนิคล้างขยะหลังบ้าน คืนชีพเว็บอืดให้โหลดไว

คุณเคยเจอสถานการณ์แบบนี้ไหม? อัปเกรด Hosting ก็แล้ว, ลงปลั๊กอิน Caching ตัวแพงก็แล้ว, ย่อรูปจนภาพแตกก็แล้ว… แต่ทำไมเว็บยังโหลดช้าอยู่?

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

ในโลกของ WordPress สิ่งนั้นเรียกว่า Database Bloat หรือ “ฐานข้อมูลบวม” วันนี้ผมจะพาคุณไปดูวิธีกำจัดขยะดิจิทัลเหล่านี้ เพื่อคืนชีพให้เว็บไซต์ของคุณกลับมาโหลดไว เหมือนเพิ่งติดตั้งใหม่ๆ กันครับ

ทำไม Database ถึงบวม? (ขยะพวกนี้มาจากไหน)

WordPress เป็นระบบที่ “ขยันเก็บ” ครับ ทุกกิจกรรมที่คุณทำบนหน้าเว็บ มันจะบันทึกข้อมูลลง Database เสมอ และปัญหามันอยู่ที่ “มันเก็บแล้วไม่ยอมทิ้ง”

นี่คือ 4 ตัวการร้ายที่ทำให้ Database ของคุณอ้วนฉุโดยไม่รู้ตัว

  1. Post Revisions (ฉบับร่างไร้ประโยชน์) ทุกครั้งที่คุณกด Save Draft หรือกด Update แก้คำผิด WordPress จะสร้างสำเนาบทความเก็บไว้ 1 ฉบับ ถ้าคุณแก้ 10 ครั้ง ก็มีขยะ 10 แถวในฐานข้อมูล ทั้งที่ใช้งานจริงแค่เวอร์ชันล่าสุดอันเดียว
  2. Spam & Trashed Comments คอมเมนต์ขยะ หรือคอมเมนต์ที่ลบทิ้งไปแล้วในถังขยะ (Trash) มันยังกินพื้นที่ Database อยู่ตราบใดที่คุณไม่กด “Empty Trash”
  3. Transients (ข้อมูลชั่วคราว) เป็นข้อมูลที่ปลั๊กอินต่างๆ ฝากไว้ชั่วคราว (เช่น ข้อมูล Cache หรือ Session) ปกติมันควรจะหายไปเองเมื่อหมดเวลา แต่บ่อยครั้งที่มันค้างเติ่งอยู่แบบนั้น
  4. Orphaned Meta (ข้อมูลกำพร้า) เวลาคุณลบปลั๊กอินทิ้งไปแล้ว ปลั๊กอินหลายตัวนิสัยไม่ดี ทิ้งค่า Setting หรือข้อมูลขยะ (Metadata) ค้างไว้ในฐานข้อมูล ไม่ยอมลบตามไปด้วย

ทำไมเรื่องนี้ถึงซีเรียส? (The Technical Insight)

คุณอาจจะคิดว่า “Database ใหญ่ขึ้นนิดหน่อย จะเป็นไรไป?”

คำตอบอยู่ที่ตารางที่ชื่อว่า wp_options ครับ ในตารางนี้จะมีข้อมูลประเภทหนึ่งที่ตั้งค่าเป็น autoload = yes แปลว่า “ทุกครั้งที่มีคนเข้าเว็บ (ไม่ว่าจะหน้าไหนก็ตาม) ข้อมูลชุดนี้จะถูกโหลดขึ้นมาด้วยเสมอ”

ลองจินตนาการว่าคุณมีข้อมูลขยะจากปลั๊กอินเก่าๆ ที่ลบไปแล้ว แต่ดันตั้งค่า autoload = yes ค้างไว้หลายพันแถวดูสิครับ… ทุกครั้งที่มีคนคลิกเว็บ Server ต้องแบกภาระโหลดข้อมูลขยะพวกนี้ขึ้นมาประมวลผลฟรีๆ นี่แหละครับคือสาเหตุที่แท้จริงของอาการ “เว็บหน่วงแบบหาสาเหตุไม่เจอ”

How-to วิธีล้างขยะ Database แบบปลอดภัย (Step-by-Step)

คำเตือนตัวโตๆ ก่อนทำขั้นตอนต่อไปนี้ ต้อง Backup เว็บไซต์ก่อนเสมอ (เพราะการลบ Database กู้คืนไม่ได้ถ้าไม่มี Backup)

วิธีที่ง่ายและปลอดภัยที่สุดสำหรับคนทั่วไป คือการใช้ Plugin ครับ (ไม่ต้องไปแก้ phpMyAdmin เองให้เสี่ยงพัง)

แนะนำเครื่องมือ WP-Optimize หรือ WP-Sweep

  1. ติดตั้งปลั๊กอิน เลือกตัวใดตัวหนึ่ง (ส่วนตัวผมแนะนำ WP-Optimize เพราะฟีเจอร์ครบและเสถียร)
  2. สแกนหาขยะ เข้าไปที่เมนู Database ปลั๊กอินจะโชว์รายการขยะทั้งหมด
  3. เลือกสิ่งที่ต้องลบ
    • Clean all post revisions (ลบฉบับร่างเก่า)
    • Clean all auto-drafts (ลบดราฟต์อัตโนมัติ)
    • Clean all trashed posts/comments (ลบถังขยะ)
    • Remove expired transient options (ลบข้อมูลชั่วคราวที่หมดอายุ)
    • Remove pingbacks and trackbacks (ลบปิงแบ็ค)
  4. กด Run Optimization รอระบบทำงานสักครู่… เสร็จ!

คุณจะตกใจเมื่อเห็นตัวเลขว่า “Database Size Reduced by XX MB” บางเว็บที่ผมเคยไปแก้ให้ ขนาด Database ลดลงไปถึง 50% เลยทีเดียว!

Pro Tip ป้องกันไม่ให้กลับมาบวมอีก

การตามล้างเป็นเรื่องดี แต่การป้องกันไม่ให้รกแต่แรกดีกว่าครับ ให้เพิ่ม Code นี้ลงไปในไฟล์ wp-config.php ของคุณ เพื่อจำกัดจำนวน Post Revisions

PHP

define( ‘WP_POST_REVISIONS’, 3 );

ความหมาย สั่งให้ WordPress เก็บฉบับร่างย้อนหลังไว้สูงสุดแค่ 3 เวอร์ชัน เท่านั้น (จากเดิมที่เก็บเป็นร้อย) แค่นี้ Database ก็เบาลงเยอะแล้วครับ

เว็บเร็วเริ่มที่ความสะอาด

การทำ Database Optimization ก็เหมือนการ “ดีท็อกซ์” ร่างกายครับ พอเอาของเสียออกไป ระบบต่างๆ ก็ทำงานไหลลื่นขึ้น เว็บโหลดไวขึ้น Google Bot ก็เข้ามาเก็บข้อมูลได้ง่ายขึ้น อันดับ SEO ก็มีโอกาสดีขึ้นตามไปด้วย

ทำเดือนละ 1 ครั้ง หรือทุกครั้งหลังจบแคมเปญใหญ่ๆ ก็เพียงพอแล้วครับ

และเมื่อระบบหลังบ้านสะอาดเอี่ยมแล้ว ปัจจัยต่อไปที่จะชี้ชะตาว่าเว็บคุณจะ “ปัง” หรือ “พัง” ก็คือเสื้อผ้าหน้าผมของเว็บ หรือที่เราเรียกว่า “Theme” นั่นเอง

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *


ติดต่อ "แว่นTalk"