14
แบบสอบถามย่อยเข้าร่วม
ฉันปรับโครงสร้างส่วนที่ช้าของแอปพลิเคชันที่เราสืบทอดจาก บริษัท อื่นให้ใช้การเข้าร่วมภายในแทนแบบสอบถามย่อยเช่น: WHERE id IN (SELECT id FROM ...) แบบสอบถามที่มีการปรับโครงสร้างใหม่จะทำงานได้เร็วขึ้นประมาณ 100x (~ 50 วินาทีถึง ~ 0.3) ฉันคาดว่าจะได้รับการปรับปรุง แต่ใคร ๆ ก็สามารถอธิบายได้ว่าทำไมมันถึงรุนแรง คอลัมน์ที่ใช้ในส่วนคำสั่ง where ถูกทำดัชนีทั้งหมด SQL ดำเนินการค้นหาในส่วนคำสั่ง where หนึ่งครั้งต่อแถวหรือบางอย่างหรือไม่? อัปเดต - อธิบายผลลัพธ์: ความแตกต่างอยู่ในส่วนที่สองของแบบสอบถาม "where id in ()" - 2 DEPENDENT SUBQUERY submission_tags ref st_tag_id st_tag_id 4 const 2966 Using where vs …