ในบันทึกการสืบค้น MySQL ที่ช้าสุดของเราการสืบค้นที่ช้าที่สุดคือการอัปเดตเป็น wp_postmeta อย่างง่าย นี่คือตัวอย่าง:
UPDATE `wp_postmeta`
SET `meta_value` = '1392835505:386'
WHERE `post_id` = 94705 AND `meta_key` = '_edit_lock';
รายละเอียดที่เกี่ยวข้องในการตั้งค่าของเรา:
- MySQL ตั้งค่าเวลาสืบค้นช้าเป็น 1 วินาที
- เครื่องมือเก็บข้อมูลของ wp_postmeta คือ InnoDB
- ทำงานภายในการติดตั้ง Multisite ขนาดใหญ่ที่มีการโพสต์นับหมื่นบนบล็อก WP หลัก (ที่มีการค้นหาที่ช้าเหล่านี้)
- กิจกรรมขั้นสูงในพื้นที่ผู้ดูแลระบบ WP (นักเขียน / บรรณาธิการจำนวนมากทำงานพร้อมกัน แต่โดยทั่วไปจะอยู่ในเนื้อหา (ไม่ใช่ของผู้อื่น))
- กิจกรรมน้อยในด้านสาธารณะของ WP (ไม่แสดงเนื้อหาจากบล็อกหลัก)
- ข้อความค้นหาที่ช้าดูเหมือนว่าทุกคนใช้คีย์ "_edit_lock" ข้อความค้นหาในรูปแบบเดียวกัน (ที่ใช้รหัสอื่นที่ไม่ใช่ "_edit_lock") ดูเหมือนจะไม่ช้า
ทำไมจึงเป็นคำถามที่ช้าที่สุดในระบบของเรา มันมีบางอย่างเกี่ยวกับการใช้ "การล็อคแก้ไข" โดยเฉพาะของ WP หรือไม่?
ขอบคุณ! :)
อัปเดต: ส่งออกจาก mysqlsla ด้านล่าง:
______________________________________________________________________ 001 ___
Count : 606 (16.83%)
Time : 2257.760468 s total, 3.725677 s avg, 1.00512 s to 84.645869 s max (20.60%)
95% of Time : 1355.289277 s total, 2.357025 s avg, 1.00512 s to 12.343604 s max
Lock Time (s) : 182.502 ms total, 301 μs avg, 29 μs to 157.542 ms max (0.21%)
95% of Lock : 22.882 ms total, 40 μs avg, 29 μs to 57 μs max
Rows sent : 0 avg, 0 to 0 max (0.00%)
Rows examined : 1 avg, 1 to 2 max (0.00%)
Database : xxx_wp
Users :
xxx_wp@localhost : 98.84% (599) of query, 51.03% (1837) of all users
yyy_wp@localhost : 1.16% (7) of query, 0.94% (34) of all users
Query abstract:
SET timestamp=N; UPDATE wp_postmeta SET meta_value = 'S' WHERE post_id = N AND meta_key = 'S';
Query sample:
SET timestamp=1392835506;
UPDATE `wp_postmeta` SET `meta_value` = '1392835505:386' WHERE `post_id` = 94705 AND `meta_key` = '_edit_lock';
SELECT
ใช่ไหมเมื่อคุณเพิ่งเข้ามาในรายการนี้? เช่นSELECT * FROM
wp_postmeta` WHERE post_id
= 94705 AND meta_key
= '_edit_lock'; `?
SELECT * FROM wp_postmeta WHERE meta_key='_edit_lock'
; ?