当前位置: 首页 > 面试题库 >

SELECT vs UPDATE性能与索引

沃威
2023-03-14
问题内容

如果我SELECT的ID,然后UPDATE用这些ID,那么UPDATE查询是比我快会UPDATE使用的条件SELECT

为了显示:

SELECT id FROM table WHERE a IS NULL LIMIT 10; -- 0.00 sec
UPDATE table SET field = value WHERE id IN (...); -- 0.01 sec

UPDATE在相同条件下,上述速度比大约快100倍:

UPDATE table SET field = value WHERE a IS NULL LIMIT 10; -- 0.91 sec

为什么?

注意:该a已建立 索引。


问题答案:

第二条UPDATE语句很可能会锁定更多行,而第一条语句使用唯一键并仅锁定要更新的行。



 类似资料:
  • 问题内容: 我们有两个节点的集群(私有云中的VM,64GB的RAM,每个节点8个核心CPU,CentOS),几个小索引(约100万个文档)和一个大索引,约有2.2亿个文档(2个分片,170GB)的空间)。每个盒上分配了24GB的内存用于elasticsearch。 文件结构: 运行以下查询大约需要1-2秒: 我们是在此时达到硬件极限,还是有办法优化查询或数据结构以提高性能? 提前致谢! 问题答案:

  • 概览 首先我们了解一下 YODAOS 的运行时:YODAOS 基于 ShadowNode 它采用事件驱动、非阻塞I/O模型;在设计之初,ShadowNode 的接口与 Node.js 兼容,因此在大部分场景下,开发者可以像 Node.js 一样使用 ShadowNode,了解这些有利于开发者更快速的进行 YODAOS 上的应用开发。 YODAOS 开发应用时,需要关注应用的性能与稳定性,包括但不限

  • 我对DS和算法相当陌生,最近在一次工作面试中,我被问到一个关于性能调优和代码的问题。我们有一个包含数十亿个条目的数据结构,我们需要在该数据结构中搜索特定的单词。那么,我们可以使用哪种Java特性/库在尽可能快的时间内进行搜索呢? 当时我想不出确切的答案,所以我写道: 我们可以将值存储在地图中,并在地图中搜索单词(但在如何确定地图中的键值对方面遇到了困难) 我如何才能理解这个问题的确切答案,以及什么

  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!

  • 问题内容: 在 createNamedNativeQuery 和 createNativeQuery 之间是否有任何与性能相关的功能,因为我们计划对HQL查询使用命名查询,并为本机SQL查询维护单独的查询文件。 问题答案: 命名本机查询 :此查询的范围是持久性上下文,可以通过指定其标识符在应用程序中使用。此后不能更改查询,它是静态的。它们在服务器启动时仅被验证一次(特定于JBoss) 本机查询 :

  • 问题内容: 我最近从切换到。在转换我冗长的代码之一时,我很惊讶地发现运行速度很慢。我用一个耗时的功能来分析和跟踪问题。我的代码中的各个位置都正在调用此函数(是其他递归调用的函数的一部分)。Profiler建议在和中都对该函数进行 300次 调用。 简而言之,以下代码总结了当前的问题: 包含函数的类: 和调用test.m的脚本: 给出输出 包含函数CustomKernels.py的类: 和调用tes