文章取自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 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 *來操做。若是某些不須要的字段數據量特別大,仍是寫清楚字段比較好,由於這樣能夠減小網絡傳輸。app
(1)SELECT *,須要數據庫先 Query Table Metadata For Columns,必定程度上爲數據庫增長了負擔。
可是實際上,二者效率差異不大。ui
(2)考慮到從此的擴展性。
由於程序裏面你須要使用到的列畢竟是肯定的, SELECT * 只是減小了一句 SQL String 的長度,並不能減小其餘地方的代碼。.net
綜上:除平時練習使用,其餘狀況都不推薦使用 SELECT * FROM xxxcode