使用 SELECT * 时出现性能问题? [复制]

2023-12-20

可能的重复:
哪个更快/最好? SELECT * 或 SELECT 列 1、列 2、列 3 等 https://stackoverflow.com/questions/65512/which-is-faster-best-select-or-select-column1-colum2-column3-etc
不使用 select * 的原因是什么? https://stackoverflow.com/questions/321299/what-is-the-reason-not-to-use-select

使用 SELECT * 而不是 SELECT FiledName, FiledName2 ... 是否存在任何性能问题?


如果您需要列的子集,那么您会给优化器带来不好的帮助(无法选择索引,或者不能仅选择索引,...)

某些数据库可以选择仅从索引检索数据。那东西非常非常有帮助,并且提供了令人难以置信的加速。运行 SELECT * 查询不允许使用此技巧。

无论如何,从应用的角度来看都不是一个好的做法。


对此的示例:

  • 您有一个包含 20 列的表 T(C1、C2、...、C19 C20)。
  • 您在 T 上有 (C1,C2) 的索引
  • 你让SELECT C1, C2 FROM T WHERE C1=123
  • 优化器拥有索引的所有信息,不需要去表数据

相反,如果你SELECT * FROM T WHERE C1=123,优化器需要获取所有列数据,那么(C1,C2)上的索引就不能使用。

在连接多个表时非常有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SELECT * 时出现性能问题? [复制] 的相关文章

  • AtomicInteger 实现和代码重复

    警告 问题有点长 但分隔线以下的部分仅供好奇 Oracle 的 JDK 7 实现原子整数 http docs oracle com javase 7 docs api java util concurrent atomic AtomicIn
  • MySQL:你能指定一个随机限制吗?

    有没有办法在 SQL MySQL 中随机化限制数字 我希望能够做的是在查询中获取随机数量的结果以在插入子查询中使用 而无需任何服务器端脚本 我希望能够作为假设说明运行的查询是 SELECT id FROM users ORDER BY RA
  • 使用 PHP 代码和 HTML 表单将 Excel (.csv) 导入 MySQL

    我知道还有其他类似的帖子 但每个人都建议直接在 PHPMyAdmin 中将其导入 MySQL 这工作完美 但我需要通过 HTML 表单导入 PHP 到 MySQL 我想要一个收集文件的 HTML 表单 然后将该文件传递给 PHP 脚本 我想
  • 仅当变量不为空时 SQL 添加过滤器

    您好 我有疑问如下 SELECT route id ROUTE ID FROM route master NOLOCK WHERE route ou 2 AND route query l s query AND lang id 1 这里
  • 我的 Delphi 11.1 调试器在 x64 项目上突然变得非常缓慢;大约一周前还可以。有什么想法吗?

    更新 拔掉网络 电缆和wifi 会导致 几乎 恢复正常的调试速度 已尝试禁用防火墙没有任何变化 但没有网络恢复正常服务 更新 2 所有 Windows x64 版本都存在缓慢问题 而不仅仅是单个大型项目 如果我构建并调试 32 位 Wind
  • 显示过去 7 天 PHP 的结果

    我想做的是显示过去 30 天的文章 但我现有的代码不断给我一个 mysql fetch assoc 错误 然后追溯到我的查询 这是代码 sql mysql query SELECT FROM table WHERE DATE datetim
  • PHP 5 的 SQLite 编译设置是什么?

    SQLite 3 7 附带了新的预写日志记录 WAL http www sqlite org wal html并且有很多设置可以被配置 http www sqlite org compile html 但是 似乎没有任何方法可以改变任何事情
  • 如何检测 Postgres 中持有锁的查询?

    我想不断跟踪 postgres 中的互锁 我碰到锁具监控 https wiki postgresql org wiki Lock Monitoring文章并尝试运行以下查询 SELECT bl pid AS blocked pid a us
  • 从存储过程中的动态 SQL 获取结果

    我正在编写一个存储过程 需要在过程中动态构造 SQL 语句以引用传入的表名称 我需要让这个 SQL 语句返回一个结果 然后我可以在整个过程的其余部分中使用该结果 我尝试过使用临时表和所有内容 但我不断收到一条消息 提示我需要声明变量等 例如
  • SQL 大表中的随机行(使用 where 子句)

    我有一个网站 人们可以在其中对汽车进行投票 向用户展示 4 辆汽车 他 她可以投票选出他们最喜欢的汽车 桌子cars有重要的列 car id int 10 not auto increment so has gaps views int 7
  • 数据库字段的标准长度列表

    我正在设计一个数据库表并问自己这个问题 名字字段应该有多长 有人有最常见字段 例如名字 姓氏和电子邮件地址 的合理长度列表吗 我刚刚查询了我的数据库 其中包含美国数百万客户 最大值名长度是 46 我选择 50 当然 其中只有 500 个超过
  • 是否允许在流水线 PL/SQL 表函数中使用 SELECT?

    管道函数的文档指出 在 SQL 语句 通常是SELECT 并且在大多数示例中 管道函数用于数据生成或转换 接受客户作为参数 但不发出任何 DML 语句 现在 从技术上讲 可以使用 SELECT 而不会出现 Oracle 中的任何错误 ORA
  • 如何查看Pocketsphinx词典中是否存在该单词?

    我只是想看看字典文件中是否存在字符串 字典文件位于问题底部 我想检查语音识别器是否可以识别单词 例如 识别器将无法识别字符串ahdfojakdlfafiop 因为字典中没有定义 所以 我可以检查某个单词是否在 pocktsphinx 词典中
  • 如何在数据库中存储年月?

    是否有在数据库中存储年份和月份的标准方法 我需要根据月份和年份制作一些报告 我无法使用日期和函数实时提取月份 因为表很大 所以我需要预处理 我会和 Michael 的建议是什么 https stackoverflow com a 81694
  • zk 与 gwt zk 请求太多

    您好 我正在尝试比较 zk 和 gwt 的性能 在我的比较中 如果框架本身将一些代码转换为js 那么我自己无法编写任何javascript 如get 但我无法自己编写js 在以上述方式编写代码时 几乎所有在浏览器上完成的操作都会将请求发送到
  • 从数据库 MYSQL 和 Codeigniter 获取信息

    如果你们需要其他信息 上一个问题就在这里 从数据库中获取信息 https stackoverflow com questions 13336744 fetching information from the database 另一个更新 尽
  • 为什么 ConcurrentHashMap::putIfAbsent 比 ConcurrentHashMap::computeIfAbsent 更快?

    使用 ConcurrentHashMap 我发现computeIfAbsent 比putIfAbsent 慢两倍 这是简单的测试 import java util ArrayList import java util List import
  • SQL Group BY,每个组的前 N ​​个项目

    我有一个 SQL 查询 可以获取给定商店中销量最高的 5 件商品 SELECT TOP 5 S UPCCode SUM TotalDollarSales FROM Sales S WHERE S StoreId 1 GROUP BY S U
  • SQL:查找每个跑步者跑步之间的平均天数

    因此 如果我们给出下表 runner ran Carol 2011 02 01 Alice 2011 02 01 Bob 2011 02 01 Carol 2011 02 02 Bob 2011 02 02 Bob 2011 02 03 B
  • 为什么这个函数在额外读取内存时运行速度如此之快?

    我目前正在尝试了解 x86 64 上某些循环的性能属性 特别是我的 Intel R Core TM i3 8145U CPU 2 10GHz 处理器 具体来说 在循环体内添加一条额外的指令来读取内存几乎可以使性能提高一倍 而细节并不是特别重

随机推荐

  • Gradle 错误:字符串索引超出范围:0

    尝试使用 Gradle 编译 Android 项目并收到奇怪的错误 当我跑步时 gradlew tasks stacktrace 尝试过干净的重建 新的仓库克隆 不同的分支 同事能够构建 aok 寻找要检查 尝试解决此问题的想法 更新 恢复
  • Selenium 和 Geckodriver 在 Python 中创建 Webdriver 时出现问题

    我在 python 爬虫中有一段代码曾经可以工作 我将其安装在新系统上 现在正在尝试获取正确的依赖项 使用geckodriver 0 13 0并执行以下代码时 def login self print self colors OKBLUE
  • “你好世界”从何而来?

    hello world 通常是任何编程语言的第一个示例 我一直想知道这句话是从哪里来的 又是在哪里第一次使用的 我曾经被告知这是有史以来在计算机屏幕上显示的第一句话 但我找不到任何对此的参考 所以我的问题是 练习在哪里使用 hello wo
  • 有没有办法为 Kotlin 顶级函数引用 Java 类?

    我想使用以下方式在顶级函数中加载资源Class getResourceAsStream 有什么方法可以获取顶级函数将被编译到的类的引用 以便我可以编写 例如 val myThing readFromStream MYCLASS getRes
  • 如何在 IntelliJ 插件中“注册”新的模块类型?

    我是 IntelliJ 插件开发的初学者 但我希望我的插件在 新项目 新模块 窗口中注册新的模块类型 我已经搜索了插件开发人员的文档 但找不到任何有用的东西 我还查看了 Kotlin 和 Scala 等现有插件 它们也添加了新的模块类型 但
  • 是否有 Java OCR 工具将文本图像转换为可编辑的文本文件?

    我正在开发一个项目 该项目需要拍摄文本 来自任何文本的硬拷贝 并将该文本转换为文本文件 然后我想使用该文本文件来做一些不同的事情 例如提供新闻文章的超链接或允许用户编辑文档 到目前为止我尝试过的工具是来自sourceforge net的Ja
  • 在选择之前和之后添加和删除字符

    我怎样才能获得角色before AND after选定的文本 然后删除它们 或者更确切地说 如果所选文本在字符内 请删除周围的字符 这样如果有任何额外的空格 字符仍将被删除 例如 双击文本时 它将选择文本 但不会选择前后的反引号 然后我想删
  • 调用 DriveApp getFolderById 或 getFileById 时 Google 附加脚本引发服务器错误

    我已经部署了一个电子表格绑定脚本作为附加组件 当它是容器绑定时它起作用了 但现在 作为附加组件 当我调用 DriveApp getFolderById 时 我收到服务器错误 function makeMap console log star
  • documentFragment.cloneNode(true) 不会克隆 jQuery 数据

    我有一个 documentFragment 其中有几个子节点 其中添加了一些 data 如下所示 myDocumentFragment document createDocumentFragment for myDocumentFragme
  • vuejs 从子组件更新父数据

    我开始玩 vuejs 2 0 我构建了一个简单的页面 其中包含一个组件 该页面有一个带有数据的 Vue 实例 在该页面上 我注册了该组件并将其添加到 html 中 该组件有一个input type text 我希望该值反映在父级 主 Vue
  • 相对于彼此定位多个嵌套 div

    我有一个外部 div 外部 div 内的 div 以及这些 div 内的 div 我想将最里面的 div 定位到它的父级 将中间级别的 div 定位到它的父级 即最外面的 div 对于 div 内的 div 我们可以使用父 div 的相对定
  • 我将如何编写 purrr::keep 的递归版本?

    假设我有一个嵌套列表 其中包含一堆不同级别的数据框 我想提取出数据框的扁平列表 我该如何写这个使用purrr功能 我应该看一下reduce 例如 给定数据 s lt list x 1 10 data data frame report LE
  • 重定向后 Codeigniter 会话销毁

    我正在会话中添加订单 ID 和购物车项目 如果我在会话中添加 2 个购物车商品 效果很好 如果我在会话中添加 3 个或更多购物车商品 重定向后所有数据丢失 控制器的名称是 checkout function pay order order
  • LINQ to SQL Server 2000:“必须声明变量‘@p0’”

    我创建了这个简单的 LINQ 查询 var result from invoice in invoiceTable where invoice Id 1 select invoice Document 它生成以下 SQL SELECT t0
  • 如何用C#关闭计算机

    从 C 程序关闭计算机的最佳方法是什么 我发现了一些有效的方法 我将在下面发布它们 但它们都不是非常优雅 我正在寻找更简单且原生 net 的东西 从 Windows XP 开始工作 在 win 2000 或更低版本中不可用 这是最快的方法
  • 将 Web 项目发布到 azure 失败:“IsolatedCSPack”任务意外失败

    我有想要发布并上传到 windows azure 的 Web 应用程序 我使用 Visual Studio 2008 我单击 发布 在 发布云服务 窗口中选择 仅创建服务包 然后单击 确定 发布失败 例外情况是 Error 26 The I
  • 如何使用 MessageHeader.CreateHeader() 方法向 WCF 消息头添加属性?

    我使用以下代码添加 WCF 自定义标头 MessageHeader header MessageHeader CreateHeader Key ns Value OperationContext Current OutgoingMessag
  • 如何在 Winform C# 上创建带有圆角/边缘的按钮?

    好吧 我将在按钮上放置一个图像 该图像有圆角 我怎样才能做到这一点 我已经在谷歌上搜索了几个小时 但仍然没有运气 您可以使用以下矩形形状Microsoft Visual Basic PowerPacks http go microsoft
  • 显式等待作为另一个元素的子元素的元素

    如果您有一个 WebElement 对象 您可以像这样搜索它的子对象 element WebElement blah element find element by id blah 是否可以使用显式等待来做同样的事情 如 wait WebD
  • 使用 SELECT * 时出现性能问题? [复制]

    这个问题在这里已经有答案了 可能的重复 哪个更快 最好 SELECT 或 SELECT 列 1 列 2 列 3 等 https stackoverflow com questions 65512 which is faster best s