文章取自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