10
เมื่อใดควรใช้ STRAIGHT_JOIN กับ MySQL
ฉันมีคำถามที่ค่อนข้างซับซ้อนที่ฉันกำลังทำงานอยู่และใช้เวลา 8 วินาทีในการเรียกใช้ EXPLAIN แสดงลำดับตารางแปลก ๆ และดัชนีของฉันไม่ได้ถูกใช้ทั้งหมดแม้จะมีคำใบ้ FORCE INDEX ก็ตาม ฉันเจอคีย์เวิร์ดเข้าร่วม STRAIGHT_JOIN และเริ่มแทนที่คีย์เวิร์ด INNER JOIN บางคำด้วยคีย์เวิร์ด ฉันสังเกตเห็นการปรับปรุงความเร็วอย่างมาก ในที่สุดฉันก็แทนที่คำหลัก INNER JOIN ทั้งหมดของฉันด้วย STRAIGHT_JOIN สำหรับคำค้นหานี้และตอนนี้มันทำงานใน. 01 วินาที คำถามของฉันคือคุณใช้ STRAIGHT_JOIN เมื่อใดและคุณใช้ INNER JOIN เมื่อใด มีเหตุผลใดบ้างที่จะไม่ใช้ STRAIGHT_JOIN หากคุณเขียนข้อความค้นหาที่ดี