问题标签 [query-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 回答
3976 浏览

sql - SQL 中的树深度

假设有一个名为 的表tree_node,它的主键被调用id,并且有一个可以为空的列被调用parent_id,并且该表嵌入了树结构(或森林),那么如何以有效的方式计算树/森林中节点的深度在 SQL 中?

0 投票
1 回答
129 浏览

sql - 这个查询可以改进吗?

请看下面的 SQL 代码。

函数FGETBIGITLIST接受逗号分隔的值作为参数,并以表格格式返回值.. 就像

函数fresolve_11接受 FGETBIGITLIST 返回的 bigint 数据,并将以这种格式返回输出

我的要求是将 FGETBIGITLIST 返回的每个数据传递给函数 fresolve_11,它应该返回一个像这样的结果集

我的查询完美运行并返回预期结果。但我正在寻找更好的替代方案,而不使用 while 循环和 2 个表变量。

提前致谢。

干杯

拉梅什维尔

0 投票
5 回答
518 浏览

sql - 更改连接时,MySQL SELECT 将永远运行

我有以下 SQL 代码:

它在不到 1 秒的时间内执行并返回行。但是,如果我将直接连接更改为left outer

查询永远运行并使用服务器 CPU 的 ~100%。

explain在两个查询上运行,第一个命中event_time索引vicidial_agent_log,而第二个忽略所有索引。上有一个索引call_log.uniqueid

vicidial_agent_log包含 ~41,000 行,call_log包含 ~43,000。

所以我的问题是 - 为什么 MySQL 没有达到我定义的索引,有没有办法强制它这样做,如果没有,我怎样才能让这个查询以可接受的速度运行?

编辑

完整解决方案:

0 投票
3 回答
261 浏览

c# - 在数据库中缓存计算值(总和/总计)

考虑以下对象模型(->> 表示集合):

客户->订单

订单->>OrderLineItems->产品{价格}

该应用程序专注于处理订单,因此在 UI 中使用显示所有符合特定条件的订单的大多数时间表。99% 的时间我只对显示 LineTotals 的总和感兴趣,而不是单个 LineTotals。

进一步考虑,每个订单也可能有多次付款(电汇、支票、信用卡等),同样,我只对我收到的金额感兴趣。

在查询数据库中的订单时,我不想选择所有订单,然后为每个订单选择其付款和 LineItems。

我的想法是将每个订单与“状态”对象相关联,缓存订单的所有总和和状态,以数量级提高查询性能,并支持未付订单、已付订单、到期订单等查询场景。

这可以防止域逻辑(例如,当订单被视为已付款时)泄漏到数据库查询中。但是,它有责任使总和保持最新。系统通常具有明确定义的需要发生的点,例如输入或集成支付、创建/修改订单。

到目前为止,我已经使用了 Observable Collections,它会在添加或删除项目或更新项目的某些属性时触发状态的重新计算。我问自己,从 ddd 的角度来看,所有这些的逻辑应该放在哪里。强制聚合根中的所有事件连接和计算逻辑对我来说似乎很奇怪。

0 投票
1 回答
521 浏览

php - PHP - 优化多个计数器增量

在流量非常大的 LAMP 服务器上,我使用内存表来跟踪几个数据项作为计数器。它是这样实现的:

索引设置唯一的 di_type 和日期,因此如果该日期存在计数器,则 d​​i_type 递增,如果不是该日期的行并且数据类型创建为 0 值。

每个页面视图都有几个这样的查询。这意味着几个mysql调用。

是否有可能将其尽可能优化为一个 mysql 调用,该调用将更新多个任意计数器,并且仍然保留在需要时创建行或增加值(如果存在)的想法?

0 投票
1 回答
331 浏览

sql - 在 Drupal 中保持数据完整性:

我碰巧在 Drupal 中开发了一个模块,由于一些看似 View 的限制,我不得不使用自定义 SQL。这让我在节点修订方面遇到了一些问题,我得出的结论是,在 Drupal 中最好使用它的本地方法来处理任何数据。否则,可能会出现数据完整性问题。

即使希望在 Drupal 中优化 SQL 查询,显然这应该在极少数情况下针对真正的瓶颈进行。

你有什么与这个困境相关的经验 - 直接 sql 查询与 Drupal 模块/功能?

0 投票
2 回答
6768 浏览

sql - 我需要对 AdventureWorks (SQL 2005) 进行慢速查询

作为索引优化中的一个练习(阅读:采访问题),我需要一个在 SQL2005 中的标准 AdventureWorks 数据库上运行缓慢的查询。我尝试过的所有查询都需要大约 1 秒,我希望有一个需要多秒的查询,以便可以有效地优化它。

这里的任何人都可以创建这样的查询或给我指点如何创建慢查询吗?我似乎无法使我的查询无效:)

0 投票
6 回答
1350 浏览

sql - WHERE 子句中的 100 倍约束使查询极慢

我正在使用 Firebird 并创建了一个名为 EVENTS 的表。这些列是:

用户想要搜索他们周围某个半径范围内的事件,但只输入了他们家乡城市的两个或三个字母。所以我们有 - 比方说 - 200 个可能的城市及其纬度和经度。因此,我的 SQL 查询如下所示:

因此,我们在 WHERE 子句中获得了 200 个约束,实际得到结果需要几秒钟。

我知道查询可能看起来很糟糕,但许多限制真的是瓶颈吗?这个查询可以优化吗?

0 投票
2 回答
1035 浏览

sql - 缓慢的 SQL 更新可能需要一些帮助

我的一位前同事在UPDATE数据导入脚本中编写了以下内容,在 92k 行的表上完成需要将近 15 分钟。

我确信它可以被重写以提高效率,但我所有的尝试都失败了,或者没有产生相同的结果。

此外,表上没有定义索引。建议表示赞赏。如果这很重要,我在 Sybase iAnywhere 11 上。

0 投票
5 回答
1094 浏览

php - 使用另一个表从表中删除记录?

注意:致编辑:如果有更好的标题,请编辑标题:)

我的问题是:

我的数据库中有两个表

table1 是 600,000 条记录

table2 是 5,000,000 条记录!!:)

删除table2中所有不在table1中的记录的最佳方法是什么

顺便说一句-最快的方法,因为我不想等待 4 小时才能完成该过程

你有比下面的代码更好的东西吗:

谢谢