select * 和select 全部字段的區別

文章取自http://blog.csdn.net/u014305991/article/details/44964171mysql

MySQL 5.1.37 
表記錄數41,547,002,即4000w行sql

使用遠程客戶端取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 *來操做。若是某些不須要的字段數據量特別大,仍是寫清楚字段比較好,由於這樣能夠減小網絡傳輸。app

(1)SELECT *,須要數據庫先 Query Table Metadata For Columns,必定程度上爲數據庫增長了負擔。 
可是實際上,二者效率差異不大。ui

(2)考慮到從此的擴展性。 
由於程序裏面你須要使用到的列畢竟是肯定的, SELECT * 只是減小了一句 SQL String 的長度,並不能減小其餘地方的代碼。.net

綜上:除平時練習使用,其餘狀況都不推薦使用 SELECT * FROM xxxcode

相關文章
相關標籤/搜索