SQL中DQL语句:select * from tb_name为什么不介意使用,而建议使用select 字段1,字段2...字段n from tb_name
首先,其实select 字段1,字段2...字段N from tb_name语句是select * from tb_name的优化。
1、执行效率。做一个实验
select top 10000 gid,fariqi,reader,title from tgongwen order by gid desc (按照降序搜索tb_gongwen 前10000行的对应字段)
用时:4673毫秒
select top 10000 gid,fariqi,title from tgongwen order by gid desc
用时:1376毫秒
select top 10000 gid,fariqi from tgongwen order by gid desc
用时:80毫秒
由此看来,我们每少提取一个字段,数据的提取速度就会有相应的提升。提升的速度还要看您舍弃的字段的大小来判断。那么select*是搜索所有字段,他会浪费多少时间呢???
2、系统资源的占用
select * 获得表中所有字段值所占用的资源将毫无疑问的大于后者。
3、可维护性
select 字段1,字段2 from tb_name明显维护性高于select * from tb_name;可以根据需求进行增删字段。