iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >不用select的原因有哪些
  • 161
分享到

不用select的原因有哪些

2024-04-02 19:04:59 161人浏览 薄情痞子
摘要

这篇文章主要讲解了“不用select的原因有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“不用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的原因有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 不用select的原因有哪些

本文链接: https://www.lsjlt.com/news/83379.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 不用select的原因有哪些
    这篇文章主要讲解了“不用select的原因有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“不用select的原因有哪些”吧!第一宗罪:不必要的...
    99+
    2024-04-02
  • css不起作用的原因有哪些
    这篇文章主要介绍css不起作用的原因有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! css不起作用的原因:1、未关联外部样式表;2、样式表保存的编码...
    99+
    2024-04-02
  • 打不开vps的原因有哪些
    打不开VPS的原因有以下几种可能性:1. 网络连接问题:可能是VPS所在的网络环境存在问题,比如网络故障、网络延迟等导致无法连接。2...
    99+
    2023-08-11
    vps
  • tomcat起不来的原因有哪些
    Tomcat起不来的原因可能有以下几种:1. 配置错误:Tomcat的配置文件(如server.xml)中可能存在错误的配置项或参数...
    99+
    2023-09-13
    tomcat
  • pycharm打不开的原因有哪些
    有以下几个可能的原因: 安装问题:可能是由于安装过程中出现了错误或者未能正确安装PyCharm导致无法打开。 兼容性问题:可...
    99+
    2024-02-29
    pycharm
  • css不生效的原因有哪些
    小编给大家分享一下css不生效的原因有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!css不生效的原因:1、html标签没写完整,漏了“<”、”>...
    99+
    2023-06-14
  • anaconda打不开的原因有哪些
    有以下几个可能的原因导致Anaconda打不开: 安装问题:Anaconda安装可能出现错误或不完整,导致无法正常打开。可以尝试...
    99+
    2023-10-21
    anaconda
  • 不压缩HTML的原因有哪些
    这篇文章主要介绍不压缩HTML的原因有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!原因很简单: HTML 文档中,多个空白字符等价为一个空白字符。也就是说换行等空白字符的删除是不安全的,有可能导致部分元素的样式...
    99+
    2023-06-08
  • php css不起作用的原因有哪些
    这篇文章主要介绍“php css不起作用的原因有哪些”,在日常操作中,相信很多人在php css不起作用的原因有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php css不起作用的原因有哪些”的疑惑有所...
    99+
    2023-07-05
  • vps不能建站的原因有哪些
    VPS(Virtual Private Server)是一种虚拟化技术,通常用于托管网站和应用程序。虽然VPS可以用来建设网站,但某...
    99+
    2023-08-11
    vps
  • sqlserver卸载不了的原因有哪些
    运行中的进程:如果SQL Server服务正在运行,那么卸载程序无法删除相关的文件和注册表项。您需要先停止SQL Server服...
    99+
    2024-04-09
    sqlserver
  • prometheus启动不了的原因有哪些
    配置文件错误:可能是配置文件中的选项设置不正确,导致Prometheus无法启动。 端口被占用:如果Prometheus要使...
    99+
    2024-03-15
    prometheus
  • vps租用价格不同的原因有哪些
    vps租用价格不同的原因有:1、受服务商优惠活动影响,一般有优惠活动时,租用vps的价格会比较便宜;2、配置选择不同,选择的配置质量越高,价格越贵;3、数据中心环境不同,专业可靠、等级越高的数据中心,租用价格越高;4、带宽选择不同,选择的带...
    99+
    2024-04-02
  • TensorFlow安装不上的原因有哪些
    TensorFlow安装不上的原因有以下几种可能: 版本不匹配:TensorFlow的版本可能不是最新的或者与系统要求不兼容。 P...
    99+
    2024-04-02
  • sql停止不了的原因有哪些
    SQL停止不了的原因可能有以下几种:1. 无限循环:在SQL语句中使用了循环结构,但是循环条件无法满足退出条件,导致SQL无法停止执...
    99+
    2023-08-19
    sql
  • MySQL启动不了的原因有哪些
    MySQL启动不了的原因可能有以下几种:1. 配置错误:MySQL配置文件(my.cnf)中的某些配置项可能有误,如端口号、数据目录...
    99+
    2023-09-26
    MySQL
  • ajax不能后退的原因有哪些
    这篇文章将为大家详细讲解有关ajax不能后退的原因有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。因为ajax与浏览器的history.back()与forward(...
    99+
    2024-04-02
  • chatgpt注册不了的原因有哪些
    这篇文章主要介绍“chatgpt注册不了的原因有哪些”,在日常操作中,相信很多人在chatgpt注册不了的原因有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”chatgp...
    99+
    2023-02-23
    chatgpt
  • redis连接不上的原因有哪些
    服务未启动:可能是因为Redis服务未启动或者已经停止了。 防火墙设置:防火墙设置可能会阻止与Redis服务器的连接。 网络问题:...
    99+
    2024-04-09
    redis
  • CentOS7开不了机的原因有哪些
    硬件故障:可能是主板、内存、硬盘等硬件故障造成无法开机。 操作系统损坏:可能是操作系统文件损坏或者引导程序损坏导致无法正常启...
    99+
    2024-03-01
    CentOS7
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作