日期:2014-05-18  浏览次数:20667 次

select * from mytab 与 select name,age from mytab 消耗一样的资源吗?
比如我有一个表,里面有100个字段
下面两条语句有什么区别吗?消耗的资源哪个更少一些?

1.
select * from mytab
rs.getString('name');
rs.getString('age');


2.
select name,age from mytab
rs.getString('name');
rs.getString('age');
而我只需要其中2个字段的值就行


------解决方案--------------------
第二种效率高一些!
------解决方案--------------------
select语句是先做选择再做投影!!
------解决方案--------------------
明显第二种好些
------解决方案--------------------
1 select * ,那个*代表什么?SQL得去查找meta表格,把*转化为字段,然后再调用,这里浪费了时间
2 * 结果集是所有字段,准备他们需要时间和空间

所以,第二种是明智的做法