A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙毅 中级黑马   /  2012-6-13 08:23  /  7567 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么说select所有字段效率更快一些?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

12 个回复

正序浏览
这个很简单啊,你查询全部和你只查询你用的字段,当然是查的越少越好了
回复 使用道具 举报
select字段是有针对性的查询,效率高点
select * 是全部查询 当然查询就慢了

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
应该是 加字段稍快把,select * 方便,如果字段很多,你会一一写上吗?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
Select效率更高,直接去数据库中查询,而slelect*要间接查询

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
杨朔 中级黑马 2012-6-17 10:21:46
9#
select查询只是针对性的查询,当然效率要比较高一些,但是select*就是全部查询,效率当然低了。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
这个应该跟索引有关,如果用select 所有字段 就是通过索引来查找,这样效率高点,至于索引,你可以上网查查看

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
select 所有字段系统直接去库表里面查询,而select * 还得去系统数据库里面取出这个表的所有字段,然后才去库表里面查询,效率当然会低。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
如果你的表不增加字段,功能当然是相同的,但是如果表结构有修改可能,这两个功能是不同的。
大部分情况并不需要所有字段,这时用select *就多余了,返回多余数据是危险的。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
不考虑具体实现,咱们把这个问题具象化一下
你的领导让你找5个人,第一种方式是:他直接告诉你有5个人,分别是XXX;第二种方式是:他说你把在XXX的所有人都找来
你觉得会是哪个更快呢?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
select 字段名 效率高,select *  系统实现时增加了查找字段名这一步。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
两者都一样,如果只查询表中部分字段,用Select 字段,Select的效率比较高,应当避免使用Select*。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
虽然结果都一样,但有时可能程序平台不同导致select加上字段来查询明显效率要比select *要高。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马