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 idappidaoptuidsidpidpnamebidbnameptypesmsvbtnationalareaov 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM