ข้ามไปที่เนื้อหาหลัก

ใน where cause ให้ check เงื่อนไขของแต่ละ Table ก่อน แล้วจึงเช็คเงื่อนไขในการ join กัน เช่น where a.*** = ? and

ใน where cause ให้ check เงื่อนไขของแต่ละ Table ก่อน แล้วจึงเช็คเงื่อนไขในการ join กัน
เช่น where a.*** = ? and 
a.yyy = ? and 
b.zzz = ? and 
a.aaa = b.aaa 
ดีกว่า where a.aaa = b.aaa and 
a.*** = ? and b.zzz = ? and a.yyy = ? 
หมาย เหตุ : ตามทฤษฏีของ Database ลำดับของ where cause ไม่ควรมีความสำคัญต่อ Performance แต่ในความเป็นจริง การ เรียงลำดับให้ เงื่อนไขในการหา อยู่เรียงตามลำดับของ Table ของเงื่อนไขนั้นๆ และมาก่อนเงื่อนไขในการ join ระหว่าง table ทำให้ performance เร็วขึ้นมาก

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

3. ใช้ EXISTS เร็วกว่า IN แน่นอน

3. ใช้ EXISTS เร็วกว่า IN แน่นอน      ยกตัวอย่างอันนี้ผมใช้ใน Oracle นะครับ     select f1,f2,f3 from my_table where     exists (select 1 from dual where f1=1 or f1=2 or f1=3)      เร็วกว่า     select f1,f2,f3 from my_table where     f1 in (1,2,3)     ฟันธง

UNION กับ UNION ALL ต่างกันอย่างไร

วันนี้เรามาดูว่า UNION กับ UNION ALL ต่างกันอย่างไร แล้วแบบไหนเร็วกว่ากัน UNION นั้น เป็นการ Join กันระหว่าง 2 Table ที่มี Columns เหมือนกันทั้งหมด และจะมีการหาข้อมูลซ้ำ เอามาโชว์แค่ตัวเดียว  UNION ALL นั้น ก็เป็นการ Join เหมือนกับ UNION แต่จะไม่มีการหาข้อมูลซ้ำ ซึ่งก็จะทำให้การ Join กันเร็วขึ้น ในกรณีที่เราไม่สนใจว่าข้อมูลเราจะซ้ำหรือป่าว ผลลัพท์ที่ออกมาก็จะออกมาทั้งหมดจิง ๆ ลองเอาไปประยุกต์ใช้ดูได้นะครับบบบบบ