select * 和select 所有字段的区别
文章取自http://blog.csdn.net/u014305991/article/details/44964171
MySQL?5.1.37?
表記錄數41,547,002,即4000w行
使用遠程客戶端取1000條數據,統計時間:
SELECT * FROM?dmsp.dmsp_dimension_content?LIMIT 0, 1000;?
時間2.218s,網絡消耗0.547s
SELECT?id,?appid,?aop,?t,?uid,?sid,?pid,?pname,?bid,?bname,?ptype,?sm,?sv,?bt,?national,?area,?ov?FROMdmsp.dmsp_dimension_content?LIMIT 0, 1000;?
取出所有字段,時間2.250s,網絡消耗0.578s?
多次查詢(改變limit條件避免緩存),時間變化不大。
結論:兩者差別幾乎可忽略。所以查詢所有字段(或者大多數字段)的時候,大可select *來操作。如果某些不需要的字段數據量特別大,還是寫清楚字段比較好,因為這樣可以減少網絡傳輸。
(1)SELECT *,需要數據庫先 Query Table Metadata For Columns,一定程度上為數據庫增加了負擔。?
但是實際上,兩者效率差別不大。
(2)考慮到今后的擴展性。?
因為程序里面你需要使用到的列畢竟是確定的, SELECT * 只是減少了一句 SQL String 的長度,并不能減少其他地方的代碼。
綜上:除平時練習使用,其他情況都不推薦使用 SELECT * FROM xxx
?
轉載于:https://www.cnblogs.com/shuaiandjun/p/7239135.html
總結
以上是生活随笔為你收集整理的select * 和select 所有字段的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 模版方法模式在Spring框架中的应用
- 下一篇: oracle insert 新增语句