STRAIGHT_JOIN memaksa urutan gabungan tabel, jadi table1 dipindai di loop luar dan table2 di lingkaran dalam.
Pengoptimalnya tidak sempurna (meskipun masih cukup baik), dan penyebab yang paling mungkin adalah statistik yang sudah ketinggalan zaman.
Tidak, hanya jika pengoptimal salah. Ini mungkin terjadi jika distribusi data Anda sangat miring atau tidak dapat dihitung dengan benar (misalnya, untuk indeks spasial atau teks lengkap).
Anda harus mengumpulkan statistik, menyusun rencana untuk kedua arah, dan memahami apa arti rencana ini.
Jika Anda melihat bahwa:
-
Rencana yang dibuat secara otomatis tidak optimal dan tidak dapat ditingkatkan dengan cara standar,
-
STRAIGHT_JOINversi lebih baik, Anda akan selalu mengerti dan mengerti mengapa akan selalu
, lalu gunakan STRAIGHT_JOIN .