社区
MS-SQL Server
帖子详情
select * 和select所有字段 的区别
小雄
2011-09-13 10:26:31
RT。。我表里面有20个字段,数据量大概是500W条左右。。
如果用select * 或者select 字段1,...字段20
哪种好?分别好在什么地方?
以前一直是用select 字段。但是刚刚看了一篇帖子。所以希望再次把这个问题搞清楚下。。。
(看了这个帖子
http://www.iteye.com/topic/1112251
)
...全文
11674
18
打赏
收藏
select * 和select所有字段 的区别
RT。。我表里面有20个字段,数据量大概是500W条左右。。 如果用select * 或者select 字段1,...字段20 哪种好?分别好在什么地方? 以前一直是用select 字段。但是刚刚看了一篇帖子。所以希望再次把这个问题搞清楚下。。。 (看了这个帖子http://www.iteye.com/topic/1112251)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CalvinR
2011-09-15
打赏
举报
回复
应该两种是效率问题
还有就是习惯问题
小雄
2011-09-15
打赏
举报
回复
Gemini Dean
2011-09-14
打赏
举报
回复
[Quote=引用 10 楼 hongjian39400 的回复:]
赵松涛在《SQL Server 2000 系统管理与应用开发》中写道“常见的编写高质量的SQL语句的原则如下:尽量不用select * from ...,而要写字段名Select filed1,filed2,...。”
[/Quote]
一般情况下是select * 效率低一点,对于mysql来说就差不多了。不过编写习惯还是写字段吧
myjavauser
2011-09-14
打赏
举报
回复
性能上没有差异,但应养成不用select *的习惯
KennycdjjMicr
2011-09-14
打赏
举报
回复
select * 比select 列名...的效率低
koumingjie
2011-09-13
打赏
举报
回复
如果查询全部字段
两者都一样,如果只查询表中部分字段,用Select 字段。。的效率要比Select * 高很多
chuanzhang5687
2011-09-13
打赏
举报
回复
尽量避免 select *
HL
2011-09-13
打赏
举报
回复
select * 应该会先查该表有哪些字段吧,这样的话可能牵扯到查询系统表,效率上应该就比列出字段名称能差一点了.但是这种差别应该是比较微小的.
hj460910133
2011-09-13
打赏
举报
回复
虽然结果都一样,但select加上字段来查询明显效率要比select *要高
NBDBA
2011-09-13
打赏
举报
回复
有些地方有区别
功能方面:
如果你的表不增加字段,功能当然是相同的,但是如果表结构有修改可能,这两个功能是不同的。
大部分情况并不需要所有字段,这时用select *就多余了,返回多余数据是危险的。
性能方面:
你的文章是写mysql的,不作评论
对于mssql来说,应该性能是一样的
--小F--
2011-09-13
打赏
举报
回复
如果是全部字段都读取的话 没什么区别
读取部分字段的话 当然列举比较好
xuam
2011-09-13
打赏
举报
回复
select 字段1,...字段20 好
效率高点.
zhd320
2011-09-13
打赏
举报
回复
[Quote=引用 9 楼 qianjin036a 的回复:]
区别在于:用select a,b,c,d...可以按指定的顺序排列列名,这样可以在调用该语句的程序中直接用类似于 rs(0),rs(1)...来获取相应的列值.
而 select * ...,其列名顺序来源于建表时设置的列名前后顺序,必须知道该顺序才能确保用 rs(0),rs(1)...具体是指的哪一列.
[/Quote]学习
yanwen0206
2011-09-13
打赏
举报
回复
select 字段好 不仅可以按照你所查的顺序显示 还对你的程式有帮助
select * 在某种情况下影响效率
hongjian39400
2011-09-13
打赏
举报
回复
赵松涛在《SQL Server 2000 系统管理与应用开发》中写道“常见的编写高质量的SQL语句的原则如下:尽量不用select * from ...,而要写字段名Select filed1,filed2,...。”
-晴天
2011-09-13
打赏
举报
回复
区别在于:用select a,b,c,d...可以按指定的顺序排列列名,这样可以在调用该语句的程序中直接用类似于 rs(0),rs(1)...来获取相应的列值.
而 select * ...,其列名顺序来源于建表时设置的列名前后顺序,必须知道该顺序才能确保用 rs(0),rs(1)...具体是指的哪一列.
cd731107
2011-09-13
打赏
举报
回复
一样的,select * 不会漏字段,写起来方便
dawugui
2011-09-13
打赏
举报
回复
[Quote=引用楼主 xiongxing318 的回复:]
RT。。我表里面有20个字段,数据量大概是500W条左右。。
如果用select * 或者select 字段1,...字段20
哪种好?分别好在什么地方?
以前一直是用select 字段。但是刚刚看了一篇帖子。所以希望再次把这个问题搞清楚下。。。
(看了这个帖子http://www.iteye.com/topic/1112251)
[/Quote]如果是全部字段,用*和罗列所有字段一模一样.
SELECT
* 与列出所有
字段
:性能和维护上的差异解析
在开发过程中,明确列出
字段
是一种更为推荐的做法。这不仅能够优化查询性能,减少不必要的资源消耗,还能让代码更具可维护性和可读性。
SELECT
*虽然简单快捷,但在复杂系统中带来的隐性问题可能会影响整体性能和数据传输效率。最佳实践:除非在特定情况下确实需要检索表中所有
字段
,否则应尽量避免使用
SELECT
*,而是显式列出所需的具体
字段
。通过这种方式,我们可以提升数据库查询的效率,同时减少后期的维护工作。结论:选择适合的查询方式需要考虑数据规模、使用场景和团队代码规范。希望本文能够帮助大家在实际开发中更好地理解。
Mysql--实战篇--
SELECT
* 与
SELECT
全部
字段
的
区别
虽然
SELECT
* 和显式列出所有
字段
在功能上相似,但在实际使用中,显式列出
字段
具有以下优势:(1)、性能更好:可以通过覆盖索引优化查询,减少I/O操作和网络传输开销。(2)、可维护性更强:代码更清晰,易于理解和调试,且不受表结构变化的影响。(3)、避免潜在问题:减少隐式类型转换的风险,提高缓存命中率,确保查询结果符合预期。因此,除非有特殊需求,否则建议尽量避免使用
SELECT
*,而是显式列出你需要的
字段
。这不仅可以提高查询性能,还可以使代码更具可读性和可维护性。
select
* 和
select
字段
的
区别
参考文章:https://mp.weixin.qq.com/s/whCprUTlrhtgyTCIUyIJ3A 自己总结如下: 1、
select
* 和
select
字段
在性能上没有什么差别 2、网络IO问题
select
* 会查出所有的
字段
,有些是不需要的,当应用程序和服务器不在同一个局域网时,
字段
过多会影响网络传输的性能 3、索引问题
select
col1 from table; sele...
MySQL
select
* 和把所有的
字段
都列出来,哪个效率更高?
MySQL
select
* 和把所有的
字段
都列出来,哪个效率更高? MySQL
select
* 和把所有的
字段
都列出来,哪个效率更高 答案是:如何,都不推荐使用
SELECT
* FROM (1)
SELECT
*,需要数据库先 Query Table Metadata For Columns,一定程度上为数据库增加了负担。 但...
MySQL -
SELECT
* 、
SELECT
全部
字段
优缺点
SELECT
*
SELECT
全部
字段
优点 简便快捷,不需要指定
字段
明确指定查询的
字段
,提高可读性 不需要更新查询,即使表结构变化 控制
字段
顺序,结果集更符合需求 可基于指定
字段
建立索引,提高性能 更适合生产环境查询 缺点 性能开销较大,解析数据字典 冗长,需逐一列出
字段
结果输出顺序不受控制,可能与表定义不符 维护成本较高,表结构变化时需更新 可读性较差,不明确指定
字段
不适合快速检查数据或编写快速查询
MS-SQL Server
34,837
社区成员
254,634
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章