ที่มีอยู่เทียบกับประสิทธิภาพการเข้าร่วม?
ที่มีอยู่เทียบกับประสิทธิภาพการเข้าร่วม?

วีดีโอ: ที่มีอยู่เทียบกับประสิทธิภาพการเข้าร่วม?

วีดีโอ: ที่มีอยู่เทียบกับประสิทธิภาพการเข้าร่วม?
วีดีโอ: 7 เคล็ดลับการทำงานให้มีประสิทธิภาพ | 5 Minutes Podcast EP.1293 2024, เมษายน
Anonim

ในกรณีส่วนใหญ่, มีอยู่ หรือ เข้าร่วม จะมีประสิทธิภาพมากกว่า (และเร็วกว่า) มากกว่าคำสั่ง IN ด้วย an มีอยู่ หรือ เข้าร่วม ฐานข้อมูลจะคืนค่า true/false ขณะตรวจสอบความสัมพันธ์ที่ระบุ เว้นแต่ว่าตารางในแบบสอบถามย่อยมีขนาดเล็กมาก มีอยู่ หรือ เข้าร่วม จะทำงานได้ดีกว่า IN

นอกจากนี้ประสิทธิภาพการเข้าร่วมเทียบกับที่มีอยู่อยู่ที่ไหน

2 คำตอบ พูด, พูดแบบทั่วไป, พูดทั่วๆไป, เข้าร่วมภายใน และ มีอยู่ เป็นสิ่งที่แตกต่างกัน ถ้าคุณทำ เข้าร่วมภายใน ในคอลัมน์ UNIQUE จะแสดงเหมือนกัน ประสิทธิภาพ . ถ้าคุณทำ เข้าร่วมภายใน ในชุดระเบียนที่ใช้ DISTINCT (เพื่อกำจัดรายการที่ซ้ำกัน) มีอยู่ มักจะเร็วกว่า

ประการที่สอง iS LEFT JOIN เร็วกว่าเข้าร่วมหรือไม่ NS ซ้ายเข้าร่วม ไม่ใช่อย่างแน่นอน เร็วกว่า INNER เข้าร่วม . อันที่จริงมันช้ากว่า ตามคำนิยาม ภายนอก เข้าร่วม ( ซ้ายเข้าร่วม หรือถูก เข้าร่วม ) ต้องทำงานทั้งหมดของ INNER เข้าร่วม บวกกับงานพิเศษของการขยายผลเป็นโมฆะ

อย่างนี้ อันไหนมีตัวตนเร็วกว่ากัน?

NS มีอยู่ ประโยคมีมาก เร็วขึ้น กว่า IN เมื่อผลลัพธ์ของแบบสอบถามย่อยมีขนาดใหญ่มาก ในทางกลับกัน IN clause คือ เร็วขึ้น กว่า มีอยู่ เมื่อผลการสืบค้นย่อยมีขนาดเล็กมาก นอกจากนี้ IN clause ไม่สามารถเปรียบเทียบสิ่งใดกับค่า NULL ได้ แต่ตัว มีอยู่ clause สามารถเปรียบเทียบทุกอย่างกับ NULL ได้

SQL JOIN ใดเร็วกว่ากัน

โดยทั่วไปแล้ว เข้าร่วมภายใน จะ เร็วขึ้น เพราะจะส่งกลับเฉพาะแถวที่ตรงกันในตารางที่เข้าร่วมทั้งหมดตามคอลัมน์ที่เข้าร่วม แต่ซ้าย เข้าร่วม จะส่งคืนแถวทั้งหมดจากตารางที่ระบุ LEFT และแถวที่ตรงกันทั้งหมดจากตารางที่ระบุ RIGHT