肯定是第二种了,使用*严重影响查询效率,即使你要查询所有的字段,那就把每个字段一一的列出来查询,不要用*查询
第二种好,第一种使用*影响查询效率,特别是当表中的字段非常多的时候,要把每一个列都列出来,相对来说,第二种只列出需要的字段,可以避免查询无用字段所消耗的资源。
第2中好,减少了索取的列,只取需要的,其实可以把每一个表要选择的列都配置在xml,以后要是新增要查询的列,直接修改配置文件就可以了,不需要更改程序。
其实这是挺纠结一件事儿,如果只是需要取少数几列,当然是果断第二种,有时候目的就是取一个表的所有列,或者取很多列,尤其表很大的时候
所以觉得,这个问题其实不用太在意,写成第一种,未必就很恶劣。能用第二种就用,实在字段太多,反而不如第一种来的好,不过要注意的是,如果用第一种,下面用字段名时记得多检查一下,表里增减字段后也要记得修改对应的程序
我个人认为:
1.不是查询所有的字段的话,用第二种。
2.当查询所有字段,并且字段比较多的情况下,第一种。
1.用*号的效率要低那么一点,因为*号要去一个基表里查找此表所有的列,然后在SELECT 这些列,
而 直接用字段名则省略了查找列的步骤,
2.对表的查询,少查一列和多查一列的区别是很大的,如果不是全表的数据都需要返回,建议只查找需要返回的列即可
我只知道,你写出列名,就不用sqlserver从系统表里面去查列名了。。。
第二种比第一种查询速度快,如果你要提取表中所有内容就得用*,只需要某字段的数据那就用第二种好了。
当使用*时,为了解析需要付出一些额外的代价,但与查询过程中无法察觉到的代价相比,这一代价通常可以忽略 显示的写出所有列名只是对以后项目中可能出现的删除列 查询会报错规避