select *和select 字段名
建议使用select 字段名 而少用select *。原因如下
1、
SELECT
* 语句取出表中的所有字段,不论该字段的数据对调用的应用程序是否有用,这会对服务器资源造成浪费,甚至会对服务器的性能产生一定的影响。
2、如果表的结构在以后发生了改变,那么
SELECT
* 语句可能会取到不正确的数据甚至是出错。
3、执行
SELECT
* 语句时,SQL Server首先要查找出表中有哪些列,然后才能开始执行
SELECT
* 语句,这在某些情况会产生性能问题。
4、使用
SELECT
* 语句将不会使用到覆盖索引,不利于查询的性能优化。
5、在文档角度来看,
SELECT
* 语句没有列明将要取出哪些字段进行操作,所以也是不推荐的。
关于
Select
* 与
Select
字段名 的问题!
理由一:不用 * 号而列取字段,是严谨且良好的习惯。
理由二:记得在SQL2000,如果在视图中使用了
select
*,像 SQL code
select
*
from
tableA
然后再修改tableA的结构,
回过头来看之前建立的视图,竟发现视图是不会自动更新的,
即在视图中的
select
*,返回的还是原有的旧结构,
这种不能同步更新的情况,很容易被忽视,造成错误.
理由三:
我以前也这样做的,不过都让改成显示列名了.理由是如果数据库中的这个表有所改动,如增加一列,而根本不需要显示.所以还是尽量用列名比较好.而且对于代码的理解也比较好.
理由四:
不建议用*,最好是写列名,排版好就行了。
理由五:
建议下一个SQL标准中取消
"select *"
的用法 :)
在大多数情况下都是明确写出列名好,
select
* 大多数情况下是图个方便。
理由六:
select
*只是圖個方便,當你的返回表中有入讀比較大的字段或者有二進制數據字段時,容易產生字段名混亂錯誤。你調用返回表時可能會出現的得不了具體值。一個個寫出來字段可以避免這些情況。
理由七:
这要看实际情况啥...
考虑到大数据量时最好用字段不用*;因为用*会把其表中的如INDEX...等用不上的信息全部提取.
习惯不用*久了秒一切OK了.
数据量大的效率问题就出来了...
select *和select 字段名相关推荐
- 正则表达式来判断Sql语句中Select到from之间使用了*而不是字段名
正则:这里大小写转换用的java的toLowerCase()方法,或者自己改一改正则也可以. \bselect\b((?!\bfrom\b).)*?\*.*?\bfrom\b 主要就是用来判断sele ...
- Select字段名和Select*
在实际开发过程中,有人喜欢或者习惯性地使用 select * from tablename 进行数据查询,当然使用*代替具体的字段名称还是有一些好处: 1.一定程度上减少了代码量,不需要输入具体的字段 ...
- 关于select from 【表名】where 【字段】= ? limit 1执行效率问题解释
关于MySQL select * from [表名]where [字段]= ? limit 1执行效率问题解释 关于select * from [表名]where [字段]= ? limit 1执行效 ...
- MySQL select 语句指定字段查询
指定字段查询 SELECT 语法 SELECT [ALL | DISTINCT] {* | table.* | [table.field1[as alias1][,table.field2[as al ...
- select * 和 select 所有字段的区别
阅读本文大概需要 1 分钟. 之前发过的文章中,关于 select * 和 select 所有字段的知识,有描述不恰当,这次重新纠正下,加深下理解. MySQL 5.1.37 表记录数 41,547, ...
- select * 和 select 字段的区别
参考文章:https://mp.weixin.qq.com/s/whCprUTlrhtgyTCIUyIJ3A 自己总结如下: 1.select * 和 select 字段在性能上没有什么差别 2.网络 ...
- select * from( select * from 表名) 是什么意思
select * from( select * from 表名) 是什么意思 1.括号内的结果集对于外面叫做派生表 这种查询一般是要对括号内的查询结果集再进行筛选及操作 2.select * from ...
- 【转】MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
[转]MyBatis学习总结(四)--解决字段名与实体类属性名不相同的冲突 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体 ...
- python读取access_Python 获取 Access 表字段名!
时效说明:walker 的旧文迁移,某些地方可能过时,最后更新时间为 2015-09-25 以下所有代码 Python2.7.Python3.4 均可用. Python资源共享群:484031800 ...
- 如何从Oracle数据库中的表中获取列名(字段名)列表?
如何从Oracle数据库中的表中获取列名(字段名)列表? 目录 如何从Oracle数据库中的表中获取列名(字段名)列表? #示例一 #示例二 示例三: #示例一 可以获取: table_name:表名 ...
最新文章
- 简单编程代码_好了好了,不闲扯了,我们开始学编程了
- linux 权限 mask,Linux mask有效权限详解
- protobuf message定义_巧用 Protobuf 反射来优化代码,拒做 PB Boy
- java安全编码指南之:输入注入injection
- php 模拟并发请求_PHP模拟并发请求
- 软件开发实训需要用到的算法和结构_软件开发实习个人总结
- php try 错误_PHP异常和错误(2)异常的基本处理:try
- his提供哪些服务_品牌战略咨询能为企业提供哪些服务
- selenium-远程调用
- 【Java EE】Day10 JavaScript高级、DOM、BOM、事件
- 【信号处理】语音时域频域频谱图分析含Matlab源码
- C# IndexOf用法
- 杭州是个技术乐观派的城市
- Netty报错 远程主机强迫关闭了一个现有的连接 异常
- cacti监控java_cacti监控windows服务器
- Exchange如何配置安装导入SSL数字证书
- Fabric.js 上划线、中划线(删除线)、下划线
- Ping计算机名和Ping网站域名都是由DNS解析吗?
- liblensfun 在 mingw 上编译时遇到的奇怪问题
- (实测)Discuz修改论坛最后发表的帖子的链接为静态地址
热门文章
- 【考研数学】二. 一元函数积分学
- mybatis采坑之 PageHelper.startPage出现两个limit情况
- w ndows 10关机快捷键,win10关机有什么快捷键 win10关机快捷键及使用小技巧【图文】...
- 物联网安全有哪些关键技术?
- word文档如何设置/取消首行输入空格当作缩进
- RAC知识更新之-RAC节点删除添加服务+维护RAC ocr表(摘自文平书)
- 企业云计算运营模式,主要分为哪3种运营模式?
- 做B2BB2C电商商城有哪些运营模式?
- 单片机入门到高级开挂学习路径(附教程+工具)
- 单片机学习(三)中断