4 回答

TA貢獻1829條經驗 獲得超6個贊
select *
如果在SQL語句中指定列,則如果從表中刪除該列并執行查詢,則SQL執行引擎將出錯。 您可以更容易地掃描使用該列的代碼。 您應該始終編寫查詢,以獲取最少的信息。 正如其他人提到的,如果您使用序號列訪問,則永遠不要使用SELECT* 如果SQL語句連接表,則選擇*為聯接中所有表的所有列提供
select *
...
應用程序使用的列是不透明的。 DBA及其查詢分析器無法幫助您的應用程序性能低下 當發生更改時,代碼更加脆弱。 您的數據庫和網絡正在遭受損失,因為它們帶來了太多的數據(I/O)。 數據庫引擎優化是最小的,因為您將帶回來所有數據,而不管(邏輯)。
Select *

TA貢獻1893條經驗 獲得超10個贊

TA貢獻1111條經驗 獲得超0個贊
以一種迂回的方式,您正在打破關于在可能的情況下使用嚴格類型的模塊化規則。直白幾乎是普遍更好的。 即使您現在需要表中的每一列,以后也可以添加更多的列,這將在每次運行查詢時被刪除,并且可能會影響性能。這會損害性能,因為 你正在從電線上提取更多的數據; 因為您可能會挫敗優化器將數據直接從索引中提取出來的能力(對于所有屬于索引的列的查詢)。而不是在表本身中進行查找。
何時使用SELECT*
添加回答
舉報