2012-06-03 99 views
2

考慮下面的加盟甲骨文的PL/SQL:轉換的Oracle SQL聯接查詢到MySQL查詢

select a.field1, b.field1, b.field2 
from table_a a, table_b b 
where a.field2 = b.field3; 

當MySQL的執行這段代碼,它需要很長的時間做任務,而在PL/SQL它沒有時間。兩個環境中的表格都是相同的。沒有字段被索引。

兩種方言中的連接有區別嗎?標準SQL中的這個正確的翻譯是什麼?

+0

它不是真的'JOIN',這種方法比'JOIN'更慢,你可以使用'從table_a中選擇a.field1,b.field1,b.field2一個內部連接table_b,其中a.field2 = b.field3 ' – Sajmon

+0

所以你的意思是說'加入...'會得到相同的結果? – user1433877

回答

1

MySQL無法應付沒有索引。 Oracle可以做一個散列連接,並且速度仍然很快。在連接列上添加索引。

+1

這工作!很好的答案! – user1433877

0

您需要在MySql中使用索引來避免您面臨的問題。