ข้ามไปยังเนื้อหา
การปรับแต่งฐานข้อมูล WordPress: วิธีทำความสะอาดและเพิ่มความเร็วฐานข้อมูลของคุณ

การปรับแต่งฐานข้อมูล WordPress: วิธีทำความสะอาดและเพิ่มความเร็วฐานข้อมูลของคุณ

Erik KellerErik Kellerอัปเดตเมื่อ: 15 นาทีอ่าน584 การดู

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

สิ่งที่ WordPress เก็บไว้ในฐานข้อมูล

การเข้าใจว่าสิ่งใดอยู่ในฐานข้อมูลของคุณช่วยให้คุณระบุสิ่งที่สามารถลบออกได้อย่างปลอดภัย การติดตั้ง WordPress มาตรฐานใช้ตารางหลัก 12 ตาราง และปลั๊กอินจะเพิ่มตารางของตนเองตามที่ต้องการ

ตาราง เก็บข้อมูล แหล่งข้อมูลที่ไม่จำเป็นทั่วไป
wp_posts โพสต์, หน้า, การแก้ไข, ไฟล์แนบ, ประเภทโพสต์ที่กำหนดเอง การแก้ไขโพสต์, ร่างอัตโนมัติ
wp_postmeta เมตาดาตาสำหรับโพสต์ (ฟิลด์ที่กำหนดเอง, ข้อมูลปลั๊กอิน) เมตาที่ไม่มีเจ้าของจากโพสต์ที่ถูกลบ
wp_options การตั้งค่าเว็บไซต์, การตั้งค่าปลั๊กอิน, ข้อมูลชั่วคราว ข้อมูลชั่วคราวที่หมดอายุ, การตั้งค่าปลั๊กอินเก่า
wp_comments ความคิดเห็นและการติดตาม ความคิดเห็นสแปม, ความคิดเห็นที่ถูกทิ้ง
wp_commentmeta เมตาดาตาสำหรับความคิดเห็น เมตาดาต้าของ Akismet สำหรับความคิดเห็นที่ถูกลบ
wp_usermeta เมตาดาต้าผู้ใช้ โทเค็นเซสชัน, ข้อมูลผู้ใช้ปลั๊กอิน
wp_termmeta เมตาดาตาสำหรับหมวดหมู่และแท็ก เมตาดาต้าของเทอมที่ไม่มีเจ้าของ

แหล่งข้อมูลที่ไม่จำเป็นทั่วไปในฐานข้อมูล

การแก้ไขโพสต์

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

ข้อมูลชั่วคราว

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

ข้อมูลที่ไม่มีเจ้าของ

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

เนื้อหาสแปมและที่ถูกทิ้ง

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

ร่างอัตโนมัติ

WordPress จะสร้างโพสต์ร่างอัตโนมัติเมื่อคุณคลิก "เพิ่มใหม่" ในตัวแก้ไขโพสต์ แม้ว่าคุณจะไม่เคยเผยแพร่ โพสต์เหล่านี้จะสะสมเมื่อเวลาผ่านไปและไม่มีประโยชน์หลังจากสิ้นสุดเซสชันการแก้ไข

การทำความสะอาดฐานข้อมูลด้วยตนเองผ่าน SQL

สำหรับผู้ที่สะดวกกับ SQL คุณสามารถทำความสะอาดโดยตรงโดยใช้ phpMyAdmin หรือไคลเอนต์ฐานข้อมูล ควรสำรองข้อมูลฐานข้อมูลของคุณเสมอก่อนที่จะรันคำสั่งทำความสะอาด

ลบการแก้ไขโพสต์

-- ลบการแก้ไขโพสต์ทั้งหมด
DELETE FROM wp_posts WHERE post_type = 'revision';

-- ลบโพสต์เมตาที่ไม่มีเจ้าของ (เมตาดาตาสำหรับโพสต์ที่ถูกลบ)
DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts p ON pm.post_id = p.ID
W

ทำความสะอาด Transients

-- ลบ transients ที่หมดอายุ
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();

-- ลบข้อมูล transient สำหรับ transients ที่หมดอายุ
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_%'
AND option_name NOT LIKE '%_transient_timeout_%';

ลบความคิดเห็นสแปมและความคิดเห็นที่ถูกทิ้ง

-- ลบความคิดเห็นสแปม
DELETE FROM wp_comments WHERE comment_approved = 'spam';

-- ลบความคิดเห็นที่ถูกทิ้ง
DELETE FROM wp_comments WHERE comment_approved = 'trash';

-- ลบข้อมูลเมตาของความคิดเห็นที่ไม่มีเจ้าของ
DELETE cm FROM wp_commentmeta cm
LEFT JOIN wp_comments c ON cm.comment_id = c.comment_ID
WHERE c.comment_ID IS NULL;

การทำความสะอาดฐานข้อมูลโดยใช้ปลั๊กอิน

หากคุณชอบวิธีที่ใช้ GUI มีปลั๊กอินหลายตัวที่จัดการการเพิ่มประสิทธิภาพฐานข้อมูลพร้อมความสามารถในการตั้งเวลา:

WP-Optimize

WP-Optimize เป็นปลั๊กอินฟรีที่ทำความสะอาดการแก้ไข, ร่าง, สแปม, transients และข้อมูลที่ไม่มีเจ้าของ นอกจากนี้ยังเพิ่มประสิทธิภาพตารางฐานข้อมูลและสนับสนุนการทำความสะอาดตามกำหนดเวลา รุ่น Pro เพิ่มการสนับสนุนหลายไซต์และการตั้งเวลาขั้นสูง

การเพิ่มประสิทธิภาพฐานข้อมูล WP Rocket

WP Rocket รวมแท็บฐานข้อมูลที่จัดการการแก้ไข, ร่างอัตโนมัติ, โพสต์ที่ถูกทิ้ง, ความคิดเห็นสแปม, transients และการเพิ่มประสิทธิภาพตาราง เนื่องจาก WP Rocket เป็นปลั๊กอินที่ใช้แคชเป็นหลัก คุณจะได้รับการทำความสะอาดฐานข้อมูลควบคู่ไปกับการเพิ่มประสิทธิภาพประสิทธิภาพในเครื่องมือเดียว

Advanced Database Cleaner

ปลั๊กอินนี้เจาะลึกโดยการตรวจจับตารางที่ถูกทิ้งไว้โดยปลั๊กอินที่ถูกปิดใช้งานและเหตุการณ์ cron ที่ไม่มีเจ้าของ มันจัดหมวดหมู่ตารางเป็น WordPress core, ที่สร้างโดยปลั๊กอิน หรือไม่ทราบ ช่วยให้คุณระบุว่าตารางใดที่ปลอดภัยที่จะลบ

ปลั๊กอิน รุ่นฟรี การทำความสะอาดตามกำหนดเวลา การตรวจจับตาราง
WP-Optimize ใช่ ใช่ พื้นฐาน
WP Rocket ไม่ (เฉพาะ Premium) ใช่ ไม่
Advanced Database Cleaner ใช่ เฉพาะ Pro ใช่ (รายละเอียด)

การเพิ่มประสิทธิภาพ wp-config.php

ป้องกันการบวมของฐานข้อมูลที่ต้นทางโดยการเพิ่มค่าคงที่เหล่านี้ในไฟล์ wp-config.php ของคุณ:

จำกัดการแก้ไขโพสต์

// เก็บเฉพาะ 5 การแก้ไขต่อโพสต์ (แนะนำ)
define( 'WP_POST_REVISIONS', 5 );

// ปิดการใช้งานการแก้ไขทั้งหมด (ไม่แนะนำสำหรับเว็บไซต์ส่วนใหญ่)
define( 'WP_POST_REVISIONS', false );

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

ลบถังขยะโดยอัตโนมัติ

// ลบถังขยะทุก 7 วัน (ค่าเริ่มต้นคือ 30)
define( 'EMPTY_TRASH_DAYS', 7 );

// ปิดการใช้งานถังขยะ (รายการจะถูกลบทันที - ใช้ด้วยความระมัดระวัง)
define( 'EMPTY_TRASH_DAYS', 0 );

ระยะเวลาการบันทึกอัตโนมัติ

// เพิ่มระยะเวลาการบันทึกอัตโนมัติเป็น 5 นาที (ค่าเริ่มต้นคือ 60 วินาที)
define( 'AUTOSAVE_INTERVAL', 300 );

การเพิ่มประสิทธิภาพตารางฐานข้อมูล

หลังจากลบแถวแล้ว ให้ดำเนินการ OPTIMIZE เพื่อเรียกคืนพื้นที่ที่ถูกแบ่งส่วน:

OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_comments, wp_commentmeta;

ตั้งเวลานี้เป็นรายเดือนหรือหลังการทำความสะอาดครั้งใหญ่ โดยปกติแล้วปลั๊กอินทำความสะอาดจะรวมการเพิ่มประสิทธิภาพตารางในงานที่ตั้งเวลาไว้

การตั้งเวลาในการทำความสะอาดอัตโนมัติ

ตั้งค่าตารางเวลาทำความสะอาดอัตโนมัติ: การทำความสะอาดชั่วคราวและสแปมรายสัปดาห์, การลบการแก้ไขรายเดือนและการปรับแต่งตาราง, และการตรวจสอบตารางปลั๊กอินที่ไม่มีเจ้าของรายไตรมาส WP-Optimize และ WP Rocket รองรับการทำความสะอาดตามกำหนดเวลา คอนฟิกพวกเขาในช่วงเวลาที่ไม่ยุ่งเหยิง

การติดตามขนาดฐานข้อมูล

ติดตามขนาดฐานข้อมูลของคุณเพื่อจับการขยายตัวในระยะเริ่มต้น รันคำสั่งนี้เพื่อดูขนาดของตารางแต่ละตาราง:

SELECT table_name AS 'Table',
       ROUND(data_length / 1024 / 1024, 2) AS 'Data (MB)',
       table_rows AS 'Rows'
FROM information_schema.tables
WHERE table_schema = 'your_database_name'
ORDER BY (data_length + index_length) DESC
LIMIT 20;

หาก wp_options เกิน 5 MB หรือ wp_postmeta ขยายเกิน 100 MB ก็ถึงเวลาทำความสะอาด ตารางเหล่านี้ถูกเรียกใช้งานบ่อย ดังนั้นขนาดของพวกมันจึงส่งผลโดยตรงต่อเวลาโหลดหน้าเว็บ

สำหรับแนวทางการปรับแต่งประสิทธิภาพที่ครอบคลุมซึ่งรวมถึงการปรับแต่งฐานข้อมูลควบคู่ไปกับการแคช, การปรับแต่งภาพ, และการกำหนดค่าบริการ อ่าน คู่มือการปรับแต่งความเร็วของ WordPress ของเรา สำหรับการดูแลสุขภาพฐานข้อมูลอย่างต่อเนื่องเป็นส่วนหนึ่งของกิจวัตรการบำรุงรักษาของคุณ ดู คู่มือการบำรุงรักษาของ WordPress ของเรา

สำหรับรายละเอียดเพิ่มเติม โปรดดูเอกสารทางการ: API ฐานข้อมูล WordPress.

คำถามที่พบบ่อย

การลบการแก้ไขโพสต์จากฐานข้อมูลปลอดภัยหรือไม่?

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

การปรับแต่งฐานข้อมูลจะช่วยเพิ่มความเร็วของเว็บไซต์ของฉันให้ชัดเจนหรือไม่?

การปรับปรุงขึ้นอยู่กับว่าฐานข้อมูลของคุณมีการขยายตัวมากเพียงใด เว็บไซต์ที่มีแถวที่ไม่มีเจ้าของมากกว่า 50,000 แถวหรือมีตาราง wp_options ที่เกิน 10 MB จะเห็นการปรับปรุงที่ชัดเจนในเวลาโหลดหน้าเว็บและความตอบสนองของแผงควบคุมผู้ดูแลระบบ เว็บไซต์ขนาดเล็กอาจเห็นการปรับปรุงเล็กน้อย การปรับแต่งฐานข้อมูลทำงานร่วมกับการแคชและมาตรการด้านประสิทธิภาพอื่นๆ เพื่อการปรับปรุงรวม

ฉันควรปรับแต่งฐานข้อมูล WordPress ของฉันบ่อยแค่ไหน?

สำหรับเว็บไซต์ที่ใช้งานอยู่ซึ่งมีการอัปเดตเนื้อหาอย่างสม่ำเสมอ การปรับแต่งรายเดือนเป็นพื้นฐานที่ดี เว็บไซต์ที่มีการเข้าชมสูงซึ่งมีความคิดเห็นบ่อยๆ, การทำธุรกรรม WooCommerce, หรือการส่งแบบฟอร์มอาจได้รับประโยชน์จากการทำความสะอาดชั่วคราวและสแปมรายสัปดาห์พร้อมกับการปรับแต่งตารางรายเดือน

ปลั๊กอินทำความสะอาดฐานข้อมูลสามารถทำให้เว็บไซต์ของฉันเสียหายได้หรือไม่?

ปลั๊กอินที่มีชื่อเสียงเช่น WP-Optimize และ WP Rocket ถูกออกแบบมาให้ปลอดภัย พวกเขามุ่งเป้าไปที่หมวดหมู่การขยายตัวที่รู้จัก (การแก้ไข, ชั่วคราว, สแปม) และไม่แตะต้องข้อมูลที่สำคัญ ความเสี่ยงจะเพิ่มขึ้นเมื่อทำการลบตารางเฉพาะปลั๊กอินด้วยตนเอง หากไม่แน่ใจว่าตารางใดจำเป็นหรือไม่ ให้ทิ้งไว้ในที่เดิมและค้นคว้าข้อมูลเกี่ยวกับวัตถุประสงค์ของมันก่อน

ความแตกต่างระหว่าง OPTIMIZE TABLE และการลบแถวคืออะไร?

การลบแถวจะลบข้อมูลจากตาราง OPTIMIZE TABLE จะจัดระเบียบการจัดเก็บทางกายภาพของตารางหลังจากที่แถวถูกลบออก โดยการเรียกคืนพื้นที่ดิสก์และการจัดเรียงข้อมูลใหม่ คิดว่ามันเหมือนกับการลบไฟล์ (การลบแถว) เทียบกับการจัดเรียงฮาร์ดไดรฟ์ของคุณ (การปรับแต่งตาราง)

ฉันควรใช้ InnoDB หรือ MyISAM สำหรับตาราง WordPress?

WordPress ใช้ InnoDB โดยค่าเริ่มต้นตั้งแต่เวอร์ชัน 5.5 และเป็นเครื่องมือจัดเก็บที่แนะนำ InnoDB รองรับการล็อคระดับแถว (ดีกว่าสำหรับผู้ใช้ที่ทำงานพร้อมกัน), ธุรกรรม, และการกู้คืนจากการขัดข้อง MyISAM เร็วกว่าในการดำเนินการอ่านหนักแต่ขาดคุณสมบัติความน่าเชื่อถือเหล่านี้ หากคุณพบตาราง MyISAM ในฐานข้อมูลของคุณ การแปลงเป็น InnoDB โดยทั่วไปแนะนำ

ฉันจะระบุตารางที่เหลือจากปลั๊กอินที่ถูกปิดการใช้งานได้อย่างไร?

ปลั๊กอิน Advanced Database Cleaner สามารถตรวจจับและจัดประเภทตารางที่ไม่ใช่หลักได้ ทางเลือกอื่นคือรันคำสั่ง SQL SHOW TABLES และเปรียบเทียบชื่อของตารางกับตารางหลักของ WordPress และปลั๊กอินที่คุณใช้งานอยู่ในปัจจุบัน ตารางที่มีคำนำหน้าตรงกับปลั๊กอินที่ถูกปิดการใช้งานเป็นผู้สมัครสำหรับการลบ

WooCommerce เพิ่มการขยายฐานข้อมูลอย่างมีนัยสำคัญหรือไม่?

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

ปรับแต่งประสิทธิภาพจากทุกมุมมอง

WP Rocket จัดการการแคช, การทำความสะอาดฐานข้อมูล, และการปรับแต่งประสิทธิภาพในปลั๊กอินเดียว เพื่อให้คุณสามารถทำให้เว็บไซต์ของคุณทำงานได้อย่างราบรื่น

สำรวจ WP Rocket →

คำถามที่พบบ่อย

ควรปรับแต่งฐานข้อมูล WordPress ของฉันบ่อยแค่ไหน?
สำหรับเว็บไซต์ส่วนใหญ่ การปรับแต่งรายเดือนถือว่าเพียงพอ เว็บไซต์ที่มีผู้เข้าชมสูง เช่น ร้านค้า WooCommerce หรือฟอรัม ควรปรับแต่งรายสัปดาห์ เครื่องมืออัตโนมัติเช่น WP-Optimize สามารถจัดการเรื่องนี้ตามกำหนดการได้
การลบการแก้ไขโพสต์จากฐานข้อมูลปลอดภัยหรือไม่?
ใช่ การลบการแก้ไขโพสต์เก่าเป็นเรื่องปลอดภัยและมักแนะนำ WordPress จะเก็บการแก้ไขไม่จำกัดตามค่าเริ่มต้น ซึ่งอาจเพิ่มแถวได้หลายพันแถว คุณสามารถจำกัดการแก้ไขโดยการเพิ่ม define REVISIONS constant ใน wp-config.php
การปรับแต่งฐานข้อมูลจะช่วยเพิ่มความเร็วของเว็บไซต์ฉันหรือไม่?
การปรับแต่งฐานข้อมูลมักจะลดเวลาการดำเนินการคำสั่ง ซึ่งช่วยปรับปรุงเวลาตอบสนองของเซิร์ฟเวอร์ (TTFB) ผลกระทบจะเห็นได้ชัดเจนที่สุดในหน้าเว็บที่มีการเปลี่ยนแปลงแบบไดนามิกที่มีคำสั่งซับซ้อน เช่น หน้า WooCommerce หรือผลการค้นหา
ควรปรับแต่งฐานข้อมูลก่อนหรือหลังการสำรองข้อมูล?
ควรสร้างสำรองข้อมูลฐานข้อมูลทั้งหมดก่อนที่จะทำการปรับแต่งใดๆ เพื่อให้แน่ใจว่าคุณสามารถกู้คืนข้อมูลได้หากเกิดข้อผิดพลาดในระหว่างกระบวนการทำความสะอาด
แถวข้อมูลเมตาที่ถูกทิ้งร้างคืออะไรและฉันสามารถลบออกได้อย่างปลอดภัยหรือไม่?
ข้อมูลเมตาที่ถูกทิ้งร้างคือแถวในตารางเมตาที่อ้างอิงถึงโพสต์ ผู้ใช้ หรือความคิดเห็นที่ไม่มีอยู่จริงแล้ว การลบออกเป็นเรื่องปลอดภัยและมักจะสะสมจากปลั๊กอินหรือเนื้อหาที่ถูกลบ เครื่องมือเช่น WP-Optimize สามารถระบุและทำความสะอาดรายการเหล่านี้ได้

แชร์โพสต์นี้

เกี่ยวกับผู้เขียน

Erik Keller
Erik Keller

ผู้เชี่ยวชาญ WordPress

ผู้เชี่ยวชาญ WordPress อาวุโสที่มีประสบการณ์กว้างขวางในการพัฒนาธีม ปลั๊กอิน และ WooCommerce มีความหลงใหลในการช่วยให้ธุรกิจประสบความสำเร็จด้วยโซลูชัน WordPress

WordPressWooCommerceการพัฒนาธีมการพัฒนาปลั๊กอินการปรับปรุงประสิทธิภาพ

ติดตามข่าวสาร

รับเคล็ดลับและบทเรียน WordPress ล่าสุดในกล่องจดหมายของคุณ