4 回答

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

TA貢獻1893條經(jīng)驗 獲得超10個贊

TA貢獻1995條經(jīng)驗 獲得超2個贊

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