千家信息网

不用select的原因有哪些

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要讲解了"不用select的原因有哪些",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"不用select的原因有哪些"吧!第一宗罪:不必要的 I
千家信息网最后更新 2026年11月04日不用select的原因有哪些

这篇文章主要讲解了"不用select的原因有哪些",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"不用select的原因有哪些"吧!

第一宗罪:不必要的 IO

这会导致 DBMS 读取所有的数据 pages,但是这些数据你又不用,在后来的 SQL 中又可能被过滤掉了或者是直接没用,但是读取数据是需要成本的,尤其大字段,例如 blob,text。

select colunm_a,column_b(select * from XXX) tmp

第二宗罪:增加了网络负担

读取更多的数据意味着返回更多的数据给客户端,这就是意味着要占用更多的网络带宽。

第三宗罪:占用了更多内存

因为读取了多余的数据,你的程序需要更多的内存去存储这些数据,这意味着你将会使用珍贵的内存资源去存储这些不必要的数据。

第四宗罪:对 ResultSet 上列顺序的依赖

如果你用了 select * 在你的程序中,并且依赖 ResultSet(返回结果)的列顺序。

那么如果修改了表结构(添加或者删除字段)可能会影响返回结果的列顺序,从而可能导致你的程序数据错误或者程序异常。

第五宗罪:视图绑定

在数据库设计过程中,我们经常会有这样的情况下:

  • 某个基础表会被多个视图或者存储过程引用。

  • 修改基础表的时候,我们必须小心翼翼地,因为不会有任何提示告诉我们,如果继续修改,会不会造成视图或者存储过程有问题。

  • 即便我们知道有问题,我们也没有办法去让视图和存储过程刷新得到表最新的信息。

如果你在创建视图中使用了 select *,就会导致各种各样的 Bug。

第六宗罪:关联冲突(Conflict in JOIN)

在简单的 SQL 中可能会表现正常,但是在你多表关联的时候可能会因为重名字段导致 SQL 错误。

例如 created,status,updated 等常见字段(一般表都会有)。

第七宗罪:拷贝数据

当你使用 SELECT * into INSERT .. SELECT 做数据拷贝的时候(一种常见的数据拷贝方式),当两张表的字段不一致时,你就可能将错误的数据放入了错误的列。

第八宗罪:拒绝了使用覆盖索引的可能性

覆盖索引是 MySQL 中非常重要的是一个优化手段,基本原理就是查询都字段都在索引中避免回表,所以 * 会导致覆盖索引失效。

总结

不使用 select

主要是是围绕着资源、和程序的稳定性和安全来说。

①浪费了时间

不论是读取数据还是传输数据,浪费都意味着等待,时间是无价的。

②浪费了资源

资源这么宝贵,你怎么能这样呢?

③增加了系统出 Bug 的可能性

例如:

  1. 鸿蒙官方战略合作共建--HarmonyOS技术社区

  2. 程序正确运行数据不对

  3. 程序报错

  4. 程序运行结果不确定

为什么有人会使用 select * 呢

①珍惜时间

可以搞定的事情,为啥还要写那个多字段呢,也不美观和直接啊,其实就是懒!

②减少 SQL 解析器的工作

认为在 select 语句中协商众多的字段,会增减 SQL 解析的工作,例如是有权限、字段是否存在等等。

这个想法是对的,但是这是很早以前的情况,现在 * 反而会增加 SQL 解析器的工作。

感谢各位的阅读,以上就是"不用select的原因有哪些"的内容了,经过本文的学习后,相信大家对不用select的原因有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

数据 字段 程序 更多 不用 视图 存储 原因 就是 意味 索引 资源 过程 错误 内存 情况 拷贝 时候 时间 结果 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网与科技 中智农互联网科技 广州淘业互联网络科技 苏州找大状互联网科技有限公司 科技赋能下的互联网金融 青岛互联网科技公司 腾讯科技 互联网女皇 北京禾田雨橡互联网科技 美国互联网前沿科技 互联网时代科技改变生活 晓花互联网科技有限公司网址 互联网科技研发水平 天津腾达互联网科技有限公司 互联网科技和法律行业 梅州GM互联网络科技有限公司 互联网科技股为什么大涨 易企秀互联网科技是做什么的 张家口科技产业互联网平台 北京瑞云互联网科技有限公司 恒生科技互联网指数十大成分股 互联网中国科技 苏州大垚互联网科技 山东吉时兔互联网科技有限公司 广州慧亚互联网科技怎么样 翼展科技 首家互联网医院 阿里互联网科技企业 容联科技互联网电商 互联网科技企业商标注意事项 互联网科技职业技能培训学校 现代互联网科技公司
0