- สถานะ
- แก้ไขแล้ว
- รายงานสำหรับ
- WPML Multilingual CMS 3.1.9.7
- แก้ไขใน
- 3.2
ภาพรวมของปัญหา
หน้าเว็บไซต์ไม่สามารถใช้งานได้หรือโหลดช้ามาก
หากคุณสามารถตรวจสอบได้ว่ามีคิวรีใดถูกเรียกใช้งาน คุณจะพบการอ้างอิงถึงคิวรีนี้:
SELECT meta_key FROM wp_postmeta GROUP BY meta_key ORDER BY meta_key LIMIT 1000;
วิธีแก้ปัญหาชั่วคราว
คุณต้องทำการแก้ไขเล็กน้อยในไฟล์หนึ่งของ WPML
คุณสามารถใช้ไคลเอนต์ FTP เพื่อแก้ไขไฟล์นี้ได้
- เปิด
wp-content/plugins/sitepress-multilingual-cms/inc/translation-management/translation-management.class.php - ไปที่บรรทัด 102 ซึ่งคุณจะเห็นบรรทัดนี้:
$this->initial_custom_field_translate_states(); - คอมเมนต์บรรทัดนั้น โดยการเพิ่ม “//” ไว้ที่จุดเริ่มต้นของบรรทัด
- บันทึกไฟล์
เมื่อคุณทำเช่นนั้นแล้ว จะไม่มีอะไรเปลี่ยนแปลง (ยกเว้นประสิทธิภาพที่สามารถปรับปรุงให้ดีขึ้นอย่างมาก) การเปลี่ยนแปลงนี้ไม่มีผลข้างเคียง คุณกำลังคอมเมนต์โค้ดที่เคยทำงานบางอย่าง แต่ไม่จำเป็นอีกต่อไปแล้ว
เราสังเกตเห็นยอดการเรียกใช้งานคิวรีที่พุ่งสูงขึ้นทั้งในส่วนหลังเว็บไซต์และส่วนหน้าเว็บไซต์ สิ่งนี้ส่งผลกระทบต่อเว็บไซต์ที่มีขนาดใหญ่มาก ๆ ซึ่งมีรายการ postmeta นับล้านรายการเท่านั้น (เช่นที่เรามีบนเว็บไซต์ของเรา)
คิวรีนี้มาจากตรรกะเก่า ซึ่งไม่ได้ทำหน้าที่สำคัญใด ๆ อีกต่อไปแล้ว เราจะลบออกทั้งหมดใน WPML 3.2
หากคุณสังเกตเห็นว่าเวลาในการโหลดหน้าเว็บพุ่งสูงขึ้นอย่างมาก นี่อาจเป็นกรณีของคุณ
อย่างไรก็ตาม โปรดทราบว่าเนื่องจาก WordPress 4.2 ได้เปลี่ยนชุดอักขระเป็น UTF8-bytes ปลั๊กอินอื่น ๆ และธีมอาจมีปัญหาด้านประสิทธิภาพ การอัปเกรดนี้อาจเปลี่ยนแปลงการทำดัชนี (ตามที่เกิดขึ้นบนเซิร์ฟเวอร์ของเรา) และอาจมีปฏิกิริยาที่ไม่คาดคิดกับ MySQL (ตามที่เราประสบมา) สิ่งนี้ทำให้สิ่งที่มีผลกระทบต่ำมากกลายเป็นปัญาวิกฤตในทันที
ดังนั้น คำแนะนำของเราคือให้เปิดใช้งานบันทึกคิวรีที่ทำงานช้าของ MySQL และตรวจสอบว่าคิวรีใดที่ส่งผลกระทบต่อประสิทธิภาพเซิร์ฟเวอร์ของคุณจริง ๆ