ทุกการโหลดหน้า, การส่งแบบฟอร์ม, การทำงานของปลั๊กอิน, และเซสชันผู้ใช้ใน 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 →



