问题标签 [sql-optimization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
131 浏览

sql - 这个SQL语句可以优化吗?

这似乎在大型数据集上花费了很长时间。将第一个和最后 3 个查询合并为 1 个会使其更快吗?有没有人对什么可以使它更快有任何意见?我很感激。

此外 -

谢谢

0 投票
2 回答
76 浏览

sql - 正则表达式是否有效地搜索 int 列?

假设整数列上有一个索引id

如何有效地找到id匹配的记录%789%

id LIKE '%789%'将无法使用索引并且会出现性能问题。

有什么诀窍可以有效地完成这项工作吗?

0 投票
2 回答
3205 浏览

sql - SQL优化Case语句

我相信我可以通过使用左外连接的 case 语句来优化这个 sql 语句。

但是我一直很难设置案例,一个用于总结代码类型 AB、CD,另一个用于所有其余的。

感谢您对此提供的任何帮助或提示。

0 投票
2 回答
1382 浏览

mysql - SQL 映射表会加快查询速度吗?你如何使用它们?

我想知道映射表的用途是什么,以及它如何加速 MySQL 查询。我正在努力加快一个缓慢的 MySQL 查询,我遇到了这个stackoverflow 问题。评论表明,映射表不仅可以加快连接两个表的查询,而且它们是构建数据库的正确方法。

我有一个非常相似的表结构,具有一对多的关系。随着表的增长,查询执行时间继续攀升到不可接受的水平。由于我无法在网上找到很多东西来帮助解决我的问题,所以我会尝试使用 stackoverflow,因为你们从来没有让我失望过。

0 投票
1 回答
4817 浏览

sql - SELECT DISTINCT 极慢

我有一个查询需要 48 秒才能执行,如下所示:

当我删除DISTINCT关键字时,它需要不到 1 秒的时间,所以似乎瓶颈就在其中。

tmd_logins每次用户登录系统时,数据库都会向表中添加一个条目。我正在尝试获取在给定时间段内(例如过去 30 天)内创建并登录的所有患者用户的总数。

我尝试删除 DISTINCT 关键字并添加group by tmd_logins.userID到语句中,但性能问题仍然存在。

tmd_logins有大约 300,000 条记录,tmd_users大约有 40,000

有没有更好的方法来做到这一点?

0 投票
1 回答
262 浏览

mysql - 如何解决此 SQL 的“使用文件排序”问题?

有表:

并输入一些记录进行测试:

当我运行这个 SQL 时:

如何解决此 SQL 的“使用文件排序”问题?

感谢帮助 :)

0 投票
2 回答
2085 浏览

sql - 加入两个 Oracle 表,日期不重叠日期范围

我有两张桌子:

  • 行程:id_trip、id_object、trip_date、delta(8980026 行)
  • 范围:id_range、id_object、date_since、date_until(18490 行)

我需要优化下面的select语句

根据条件,“范围”中的行程总是有一个匹配的行

  • trips 表不断增长,但没有更新或删除
  • 表范围可能会不时以任何方式更改(删除、更新、插入),因此基于函数的索引不是这种方式:(
  • id_object(在两个表中)和 date_since(在行程中)都有索引

有谁知道如何加快速度,甚至可能吗?

0 投票
4 回答
193 浏览

mysql - 使用多个 AND 优化连接查询的最佳方法是什么?


我正在开发一个在线预订系统,人们可以在其中根据一天中特定时间的可用性预订物品。为此,我使用了两个表 1.Item 2.Reservation

我正在使用上述查询来显示特定类别下的所有项目,其中包含用户可以在特定日期预订的免费时间段。

预留表中的插槽字段包含字符串(例如:0:1:1:1:0:0:0:0:0:0:0:0:1:1:1:0:0:0:0:0: 0:0:0:0) 其中 1 表示保留小时,0 表示可用。

项目表中的可用性显示该项目是否可供预订(可能因维修而停机)。

首先我的表结构很好?其次优化我的查询(多列索引等)的最佳方法是什么。

谢谢,
拉维。

0 投票
1 回答
194 浏览

ruby-on-rails - Rails 3.1:在单个查询中通过连接表优化 many_to_many?

用户有很多曲目,通过收藏。:as_public收藏夹有一些关于相关曲目的额外的每用户元数据,并且整个内容使用自定义散列方法作为 json blob 返回。

即使我正在使用 JOIN 访问相关对象,我也在进行数百个非常基本的SELECT track FROM tracks WHERE track.id='1'查询。我想优化这个查找。

用户控制器:

用户.rb

最喜欢的.rb

轨道.rb

当我将用户的收藏夹作为公共曲目访问时运行的 SQL 是:

如何在不进行数百个 SELECT track where track.id='...' 查询的情况下执行此操作?

谢谢!

0 投票
1 回答
628 浏览

sql - 以下 7 个更新查询的 SQL 优化。同一张桌子。合二为一?

以下查询像 7 次一样更新同一个表。我希望您能帮助我通过将它放入一个查询中来优化它,以便它只通过表一次而不是 7 次。这确实会降低性能大数据集..

谢谢。

PS我不知道它是否仍然有效,但每个查询字符串都取决于它之前的查询来准确计算。所以如果我们需要将它们分开以保持准确,那么我可以使用一些帮助来优化每个字符串(查询)单独。

以下 SQL 查询是在 Delphi 2009 中进行的,因此格式可能会有所不同,但您仍然应该能够很容易地阅读查询..