MySQL 查询耗时超过 6 秒

2023-12-21

不久前,我得到了一些有关特定查询的帮助。这是链接:SQL Group BY 在新列中使用字符串 https://stackoverflow.com/questions/31012881/sql-group-by-using-strings-in-new-columns

我的查询看起来与此类似:

SELECT    event_data, class_40_winner, class_30_winner
FROM      events e
LEFT JOIN (SELECT result_event, name AS class_40_winner
       FROM   results 
       WHERE  class = 40 AND position = 1) c40 ON e.id = c40.result_event
LEFT JOIN (SELECT result_event, name AS class_30_winner
       FROM   results 
       WHERE  class = 30 AND position = 1) c30 ON e.id = c30.result_event

现在,我已在数据库中输入了足够的数据(22,000 行),该查询需要 6 秒多的时间才能完成。 (我的实际查询比上面的查询更大,因为它现在有 4 个连接。)

我在查询中使用了“解释”功能来查看。 “结果”表中的每个查询都会拉入 22,000 行,因此这似乎是问题所在。

我做了一些研究,听起来我应该能够在“结果”表上索引相关列以帮助加快速度。但当我这样做时,它实际上将我的查询速度减慢到了大约 10 秒。

对于我可以采取哪些措施来改进此查询有什么建议吗?


AFAIK,你正在旋转你的数据,我认为使用max(case ...) ... group by在旋转数据方面具有良好的性能。
我可以建议您改用此查询:

select event_date
    , max(case when r.class = 40 then name end) `Class 40 Winner`
    , max(case when r.class = 30 then name end) `Class 30 Winner`
from events e
left join results r on e.event_id = r.result_event and r.position = 1
group by event_date;

[SQL Fiddle 演示] http://www.sqlfiddle.com/#!9/e0a43/3

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

MySQL 查询耗时超过 6 秒 的相关文章

  • SQL Server 查询中 UNION ALL 与 OR 条件

    我必须根据表上不存在的条件选择一些行 如果我使用如下的 union all 它会在不到 1 秒的时间内执行 SELECT 1 FROM dummyTable WHERE NOT EXISTS SELECT 1 FROM TABLE t WH
  • 向带有检查约束 SQL 的表添加列

    我想向表中添加一列 然后添加一个检查约束以确保其大于 0 我似乎无法让它在 oracle sl Developer 中运行 Alter TABLE store101 add column Base salary Number 7 2 con
  • 是否可以从子查询中获取多个值?

    有没有办法让子查询在oracle db中返回多列 我知道这个特定的sql会导致错误 但它很好地总结了我想要的 select a x select b y b z from b where b v a v from a 我想要这样的结果 a
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • 无法连接到 MAMP 上的 phpMyAdmin

    我收到此错误消息 MySQL 说道 无法连接 设置无效 phpMyAdmin 尝试连接 MySQL 服务器 但服务器拒绝连接 您应该检查配置中的主机 用户名和密码 并确保它们与 MySQL 服务器管理员提供的信息相对应 用户和通行证是默认的
  • 需要在 SQL Server 中透视字符串值

    我有一个包含值的表 描述为 Occupation String Name String Developer A Developer B Designer X Coder Y Coder Z 我需要数据透视格式的值 Designer Deve
  • 多边形内的 SQL 地理点在 STIntersect 上不返回 true(但使用 Geometry 返回 true)

    我不想仅仅为了在 STIntersect 中返回 true 而将地理数据转换为几何图形 下面是 SQL 中的代码 DECLARE point GEOGRAPHY GEOGRAPHY Point 1 1 4326 DECLARE polygo
  • 如何为 MySQL 中的字段或列添加别名?

    我正在尝试做这样的事情 但我收到未知的列错误 SELECT SUM field1 field2 AS col1 col1 field3 AS col3 from core 基本上 我只想使用别名 这样我就不需要执行之前执行的操作 这在mys
  • SQL查询json字典数据

    我的表中的 CLOB 字段包含 JSON 如下所示 a value1 b value2 c value3 我正在尝试编写一个 SQL 查询来返回一个包含键和值字段的表 如下所示 key value a value1 b value2 c v
  • 如何使用 SQL Server 2008 执行多个 CASE WHEN 条件?

    我想做的是对同一列使用多个 CASE WHEN 条件 这是我的查询代码 SELECT Url p ArtNo p Description p Specification CASE WHEN 1 1 or 1 1 THEN 1 ELSE 0
  • 随着时间的推移累积(不重叠)——技术?

    我正在尝试找到一种更好的方法来制作水晶报告 其他人的 按组添加不重叠的时间 这显然是一个古老的问题 有没有一种技术可以得到 调整每条记录的 开始 结束 时间 以消除共同 重叠时间 亚组内 使用直接 SQL 尽管我发现我可以执行 CTE 假设
  • 如何使用 MySQL 选择有特定值的 2 个连续行?

    我正在构建一个系统 该系统应该显示学生何时连续缺席两天 例如 此表包含缺勤情况 day id missed 2016 10 6 1 true 2016 10 6 2 true 2016 10 6 3 false 2016 10 7 1 tr
  • 在 plpgsql 函数中使用 quote_ident()

    我是创建 plpgsql 函数的新手 我需要一些有关在函数内部执行的动态命令上使用 quote ident 甚至 quote literal 的说明 希望有人能给我一个关于它们如何在函数内部工作的具体解释 TIA 这是一个例子 EXECUT
  • PostgreSQL函数中sql语言和plpgsql语言的区别

    我很新数据库开发所以我对下面的例子有一些疑问 函数 f1 语言 SQL create or replace function f1 istr varchar returns text as select hello varchar istr
  • 来自数据库的 jfreechart 散点图

    如何使用java中的jfreechart绘制mysql数据库表中数据的散点图 我使用过 Swing 库 任何链接都会有帮助 我搜索了谷歌但找不到理解的解决方案 如果您有代码 请提供给我 实际上我确实做了条形图并使用 jfreechart 绘
  • 如何在 SQL Server 2012 中选择除一列之外的所有列? [复制]

    这个问题在这里已经有答案了 有没有一种方法可以选择所有列 但只选择我不想选择的特定列 我的意思是有时我会遇到这样的问题 表有数百个字段 而我只需要删除一个字段 我需要重写所有列吗 有什么窍门吗 喜欢select
  • 默认情况下在sql日期时间列中插入null/空值

    如何在 SQL Server 中创建一个表 默认日期时间为空 而不是1900 01 01 00 00 00 000我得到了 我的意思是 如果没有插入值 则默认值应该为 null 空等 如果没有插入值 默认值应该是null empty 在表定
  • 使用函数的 SQL 查询 - 如何获取列表的最大计数

    如何查询 MAXIMUM COUNT 交易次数 我的代码如下 SELECT customer id COUNT customer id FROM rental GROUP BY customer id HAVING MAX COUNT cu
  • 如何使用 SQL 查询创建逗号分隔的列表?

    我有 3 个表 名为 应用程序 ID 名称 资源 id 名称 应用程序资源 id app id resource id 我想在 GUI 上显示所有资源名称的表格 在每一行的一个单元格中 我想列出该资源的所有应用程序 以逗号分隔 所以问题是
  • 使用 PHP 将 latin1_swedish_ci 转换为 utf8

    我有一个数据库 里面充满了类似的值 Dhaka 应该是 Dhaka 因为我在创建数据库时没有指定排序规则 现在我想修复它 我无法从最初获取数据的地方再次获取数据 所以我在想是否可以在 php 脚本中获取数据并将其转换为正确的字符 我已将数据

随机推荐

  • 在没有虚拟内存支持的系统中进行链接和分页

    首先 虚拟内存是系统的硬件特性 还是仅由操作系统实现 在链接时重定位期间 链接器将运行时地址分配给生成的可执行文件中的每个节和每个符号 这些运行时地址是否对应于虚拟地址 如果生成可执行文件的系统不使用虚拟内存怎么办 接下来 如果不使用虚拟内
  • 我可以将 emmeans 与 LME 模型一起使用吗?

    我使用的 LME 模型定义如下 mod4 lme lt lme pRNFL Init Age Status I Time 2 random 1 Patient EyeID data long1 na action na omit 输出是 g
  • Scala - 隐式转换与 unapply

    我想要一个提取器隐式转换其参数 但它似乎不起作用 考虑这个非常简单的情况 case class MyString s String implicit def string2mystring x String MyString new MyS
  • Three.js - 缩小时物体消失

    在我的 Three js 项目中 我为相机使用高 z 位置 当 z 位置太高时 我的场景会变黑 所以 当我缩小时 它会变成黑色 但我不希望这种情况发生 This is how it is with camera position z 300
  • 深层链接在 Android 版 Chrome 中不起作用

    我为我的应用程序定义了一个意图过滤器 如下所示 Accepts URIs that begin with urban success gt
  • 检查数据库记录映射上的空值

    如何检查附加代码中的数据库空值 请理解我是一个新的 C 皈依者 此代码的作用是获取 IDataReader 对象并将其转换并映射到强类型对象列表 但我发现 当阅读器中返回空列时 它会完全出错 转换器 internal class Conve
  • Prawn 有多少种字体可用?

    我一直在随机尝试 Prawn 中的 Ruby 字体 例如 Times New Roman 是 Palatino Linotype 否 是否有可用字体和不可用字体的列表 代码中有默认字体列表 位于 lib prawn font afm rb
  • Django ORM 继承与 ManyToMany 字段

    假设我有以下 ORM 类 为了简化而删除了字段 class Animal models Model say def say something self return self say class Cat Animal self say I
  • 后台活动识别

    我正在制作一个使用 ActivityRecognition API 在后台跟踪用户活动的应用程序 如果用户在指定的时间段 例如 1 小时 内保持在同一位置 则系统会推送通知 告诉用户去散步 我已经实现了活动识别 但仅限于应用程序打开时的情况
  • 从.NET 4.5.2项目访问appsettings.json

    我有两个项目 一个 1 1 0 ASP NET Core 项目和一个对 4 5 2 项目的引用 我想从 appsettings json 文件获取值到我的 4 5 2 项目 appsettings json 文件位于核心项目中 在我的 4
  • 如何在两个html页面之间做过渡效果

    我需要在html页面之间提供过渡效果 当单击菜单或子菜单时 页面将以过渡效果打开 请指导我 如何做到这一点 提前致谢 下面的链接只有 div 转换 没有页面转换 html页面之间可以进行相同的转换吗 如何在两个 HTML 页面之间添加过渡
  • 如何在 shell 脚本中切换到不同的用户并使用新用户执行某些命令?

    我当前使用用户 USER1 登录 SERVER1 并且我已将 bash 脚本放在这里 该脚本必须切换到同一服务器 SERVER1 上的不同用户 USER2 并使用新切换的用户执行一些命令 注意 USER1 不是 root 用户 因此我需要在
  • SQL:一个查询中有两个 select 语句

    我想从一个查询中的两个 SQL 表中选择信息 但这些信息是不相关的 因此不存在潜在的联合 以下设置就是一个示例 tbl马德里 id name games goals 1 ronaldo 100 100 2 benzema 50 25 3 b
  • 使用递归进行文件复制期间的powershell错误检查

    我有一个程序可以递归地复制文件夹和文件 例子 Copy Item path folderA destination folderB recurse 有时文件不会复制 有没有办法 步入递归 或更好的方法来做到这一点 这样我就可以在过程中而不是
  • Java:查找某个单词在字符串中出现的次数(是否有类似于 C# 的表达式)?

    我对查找一个单词在字符串中出现的次数很感兴趣 我看过SUN的例子匹配器演示 https stackoverflow com questions 3016522 count the number of times a string appea
  • c# 查找目录中包含列表/数组/数据表等中指定的值的所有文件名

    使用 c NET 4 6 1 我有一组字符串 我想用它们从给定目录中选择 有效 文件 这就是我的意思 下面是我想要用来从存储在数组中的目录获取预期文件名的字符串示例 我不关心这些值是否存储在数组 列表或其他类型的集合中 我可以将它们放入最适
  • 如何自定义斯巴达克斯中的较低级别组件?

    我正在尝试自定义ProductListItemComponent和ProductGridItemComponent为了添加更多功能 例如库存柜台 经过一些快速研究后 我得出的结论是 无法使用cmsComponents对象 只有实际的 CMS
  • 演示无法在 Windows 10 上运行

    我一直在尝试在装有 Windows 10 的本地计算机上运行 R3 Corda 提供的所有示例和演示 https docs corda net releases release V1 0 running the demos html htt
  • 从 Any 进行投射时 UIColor 子类崩溃?

    我知道 子类化UIColor不推荐 苹果说 大多数开发人员不需要子类化 UIColor 但是我愿意 有关原因的更多信息可以从另一个问题 https stackoverflow com questions 59739137 overridin
  • MySQL 查询耗时超过 6 秒

    不久前 我得到了一些有关特定查询的帮助 这是链接 SQL Group BY 在新列中使用字符串 https stackoverflow com questions 31012881 sql group by using strings in