我在某處讀取從不使用*來返回表中的所有列 - 這是懶惰的。在這種情況下,如果我需要的所有5列,也不會有後來的表進行任何更改,是否有在在SELECT查詢中使用*
SELECT *
from table
與任何演出差異
SELECT id,col1,col2,col3,col4
from table
感謝您的幫助。
我在某處讀取從不使用*來返回表中的所有列 - 這是懶惰的。在這種情況下,如果我需要的所有5列,也不會有後來的表進行任何更改,是否有在在SELECT查詢中使用*
SELECT *
from table
與任何演出差異
SELECT id,col1,col2,col3,col4
from table
感謝您的幫助。
應該沒有什麼區別。這只是一個糟糕的做法 - 如果稍後修改table
,它可能會打破一些更復雜的查詢(如跨多個表的查詢),如果它們使用*
。
我不認爲這是一個明顯的性能差異,但在生產代碼,我會用一個明確的列列表堅持:
JOIN
添加到塔像做別名列SELECT *
STOP upvoting這 – Kermit 2013-05-10 19:10:38
這可能有助於事情會變得有趣[爲什麼SELECT *認爲是有害的?](http://stackoverflow.com/questions/3639861/why-is-選擇被認爲有害的) – Sam 2013-05-10 19:10:39
真的沒有性能差異。這主要是一個警告,因爲在團隊環境中,你永遠不會知道什麼時候有人可以添加20列(其中一個是2M的blob)。這肯定會導致性能問題。 – 2013-05-10 19:11:02