千家信息网

select * 和 select所有字段的区别有哪些

发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,这篇文章主要介绍select * 和 select所有字段的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MySQL 5.1.37表记录数 41,547,002,即
千家信息网最后更新 2024年11月17日select * 和 select所有字段的区别有哪些

这篇文章主要介绍select * 和 select所有字段的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

MySQL 5.1.37

表记录数 41,547,002,即 4000+w 行。

使用远程客户端取 1000 条数据,统计时间:

SELECT * FROM dmsp.dmsp_dimension_content LIMIT 0, 1000;

时间 2.218s,网络消耗 0.547s 。

SELECT id, appid, aop, t, uid, sid, pid, pname, bid, bname, ptype, sm, sv, bt, national, area, ov FROM dmsp.dmsp_dimension_content LIMIT 0, 1000;

取出所有字段,时间 2.250s,网络消耗 0.578s 。

多次查询(改变 limit 条件避免缓存),时间变化不大。

结论:两者差别几乎可忽略。所以查询所有字段(或者大多数字段)的时候,大可 select * 来操作。如果某些不需要的字段数据量特别大,还是写清楚字段比较好,因为这样可以减少网络传输。

(1)减少数据的负担。

SELECT *,需要数据库先 Query Table Metadata For Columns,一定程度上为数据库增加了负担(影响网络传输的性能),但是实际上,两者效率差别不大。

(2)考虑到今后的扩展性。

因为程序里面你需要使用到的列毕竟是确定的, SELECT * 只是减少了一句 SQL String 的长度,并不能减少其他地方的代码。

(3)索引问题

select abc from table; 和 select * from table;

在 abc 字段有索引的情况下,mysql 是可以不用读 data,直接使用 index 里面的值就返回结果的。但是一旦用了 select *,就会有其他列需要读取,这时在读完 index 以后还需要去读 data 才会返回结果,这样就造成了额外的性能开销。

综上:除平时练习使用,其他情况都不推荐使用 SELECT * FROM XXX 。

以上是"select * 和 select所有字段的区别有哪些"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

字段 数据 时间 网络 不大 内容 差别 性能 情况 数据库 篇文章 索引 结果 网络传输 传输 查询 消耗 清楚 不用 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中国知网数据库培训暨检索比赛 数据库分布键用法及作用 武汉网络安全等级测评公司 梦幻西游角色转服务器 服务器清灰注意事项 sql数据库导入数据小程序 网络安全实验技术3课后答案 zabbix实时取数据库 云计算网络技术与应用试题 玉溪光靓互联网科技有限公司 重医研究院大数据库 ai服务器行业龙头排名 android数据库排序 pop3等服务器的安全配置 宁波营销网络技术有哪些 数据库增长量 开源数据库有哪些老年 预测分析软件开发公司 普洱高密度存储服务器价格 东营智慧医养软件开发系统 玉溪农校计算机网络技术介绍 如何管理好一个软件开发团队 是所有数据库共享的比如说 徐州通信网络技术服务 asp 操作数据库 丽水学软件开发流程 软件开发与项目管理选题意义 网络安全风险防范与应对 天猫小店用什么软件开发票 普洱高密度存储服务器价格
0