在一本oracle書中,我讀到當我們通過連接兩個或多個表來執行SELECT時,如果在SELECT名稱工作得更快之前使用tablename。
如:
SELECT table1.name, table1.dob....
,而不是SELECT name, dob....
JOIN - 在列名之前添加表名是否是一種好的做法?
它是在MySQL以同樣的方式?
編輯
我知道,這是一個很好的做法時,有相同的字段名。即使沒有相同的字段名稱,我在想的也是性能觀點
在一本oracle書中,我讀到當我們通過連接兩個或多個表來執行SELECT時,如果在SELECT名稱工作得更快之前使用tablename。
如:
SELECT table1.name, table1.dob....
,而不是SELECT name, dob....
JOIN - 在列名之前添加表名是否是一種好的做法?
它是在MySQL以同樣的方式?
編輯
我知道,這是一個很好的做法時,有相同的字段名。即使沒有相同的字段名稱,我在想的也是性能觀點
從效率的角度來看,甲骨文和MySQL 執行前編譯的SQL到一個內部表示,所以不認爲執行時間必須有顯着差異,因爲如果它們沒有被指定,它們將從字段名稱中決定表格。時差將在編譯時間,在那裏他們推導出每個字段的表格。
事實上,我個人懷疑,如果指定表名,Oracle執行速度會更快!
當有相同的字段名稱時,這是一個很好的做法。我想的是關於性能的觀點,即使沒有相同的字段名稱 – Anish
我已經編輯了答案。 –
當字段名稱相同時,這是不好的做法,這是不錯的做法。這不是關於效率,而是關於當其他人將字段添加到具有重疊名稱的連接表中時,您的查詢不會中斷,所以您的工作在六個月的時間內運行,而不僅僅是在今天。
確定'explain'給出了相同的計劃 – triclosan
@triclosan你能解釋一下嗎?我沒有完全得到你 – Anish
運行'explain first_query'和'explain second_query'並比較結果 – triclosan