爲什麼不要用select *

很可能這會是一個面試題

主要從以下幾個角度:
1. 程序變更問題,出現不可以預知隱患;
假設某一天修改了表結構,如果用select *,返回的數據必然會會變化,客戶端是否對數據庫變化作適配,是否所有地方都做了適配,這都是問題。

2. 性能問題
a. 使用了select ,必然導致數據庫需要先解析代表哪寫字段,從數據字段中將*轉化爲具體的字段含義,存在性能開銷;
b. 不可能對所有字段建索引,在索引優化必然會有侷限性,導致查詢時性能差;
c. 可能會存在不需要的列,傳輸過程中有不必要的性能損耗;
d. 客戶端解析查詢結果也需要更多損耗;

所以select *不存在對應用實際的任何好處,不但影響性能,而且應用變更中都是坑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章