為什麼不要用select

2022-06-17 05:24:11 字數 383 閱讀 5274

很可能這會是乙個面試題

主要從以下幾個角度:

1. 程式變更問題,出現不可以預知隱患;

假設某一天修改了表結構,如果用select *,返回的資料必然會會變化,客戶端是否對資料庫變化作適配,是否所有地方都做了適配,這都是問題。

2. 效能問題

a. 使用了select ,必然導致資料庫需要先解析代表哪寫字段,從資料字段中將*轉化為具體的字段含義,存在效能開銷;

b. 不可能對所有欄位建索引,在索引優化必然會有侷限性,導致查詢時效能差;

c. 可能會存在不需要的列,傳輸過程中有不必要的效能損耗;

d. 客戶端解析查詢結果也需要更多損耗;

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

為什麼不要用 StringBuffer

很多人在回答新手提問的時候會說,stringbuilder 是非同步的,所以快一些,stringbuffer是同步 執行緒an全 的,所以慢一些。從技術上說這句話是沒有錯的,但是為什麼又不要用 stringbuffer 呢?這就是為什麼 stringbuffer 這個類天生缺陷。在api設計中有一條...

為什麼要用 enable shared from

樓主 hma if you think you can,you can.panrainbow 憂鬱淡藍 於 tue nov 9 11 48 38 2010 提到 引入enable shared from this的原因是可以實現返回值為指向該類本身的 shared ptr,為什麼以this為拷貝構造...

為什麼要用補碼

在探求為何機器要使用補碼之前,讓我們先了解原碼,反碼和補碼的概念.對於乙個數,計算機要使用一定的編碼方式進行儲存.原碼,反碼,補碼是機器儲存乙個具體數字的編碼方式.原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值.比如如果是8位二進位制 1 原 0000 0001 1 原 1000 ...