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

相关文章
相关标签/搜索