2013-01-15 72 views
1

在執行select查詢時,表自連接的性能如何與兩個不同表之間的連接進行比較?例如,如果表A和tableB的是確切的重複(包括結構和數據),這將是優選的:SQL性能懲罰與表自連接

select ... from tableA a inner join tableA b...,或

select ... from tableA a inner join tableB b... 

也許它不是一個簡單的答案,在這種情況下,是否有有關此主題的任何參考?

我正在使用MySql。

謝謝!

回答

2

假設表B是表A的精確副本,並且創建了所有必需的索引,則表A的自連接應該比B連接A更快一些,因爲表A和其索引的數據可以從緩存中重用以執行自連接(這也可以隱含地爲自連接提供更多內存,並且更多行將放入工作緩存中)。

如果表B不一致,則不可能進行比較。