问题标签 [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 投票
5 回答
408 浏览

c# - LINQ 或实体框架创建无界 SQL 语句

我致力于我的应用程序的速度优化,我发现 LINQ(或 EF)正在为我创建一些运行缓慢的奇怪 SQL。

这是一些代码:

从理论上讲,它应该创建了需要 25 条记录的 SQL 语句,但分析器显示了以下 SQL:

_databaseView 是 IQueryable 对象,我的所有排序和过滤逻辑都在该对象上完成。

这是我想出来的:如果我不做任何过滤,SQL 是正常的,上面有 SELECT TOP (25)。但是每当我过滤某些东西时,就会变得一团糟。这是我的过滤器之一的代码:

它没有任何约束。我如何使这个 LINQ-EF 东西产生一些好的 SQL ?

提前谢谢!

0 投票
2 回答
5520 浏览

sql - mysql“分组依据”非常慢的查询

我在一个大约有 10 万条记录的表中有这个查询,它运行速度很慢(3-4 秒),当我取出组时它要快得多(不到 0.5 秒)。我很茫然如何解决这个问题:

msgtable 在thread_ididsenderid上有索引recipientid

解释回报:

任何想法如何在返回相同结果的同时加快速度(每个线程有多条消息,我想在此查询中每个线程只返回一条消息)。

提前致谢。

0 投票
7 回答
243 浏览

sql - SQL 优化

如何优化这个?

0 投票
3 回答
509 浏览

mysql - 将 IN 子查询重写为 JOIN

我从来没有在 MySQL 中使用 IN 获得过良好的性能,并且我再次遇到了性能问题。

我正在尝试创建一个视图。它的相关部分是:

基本上,我只想知道客户是否附有便条。多少个音符都没有关系。如何使用 JOIN 重写它以加快速度?

客户表目前有 150 万行,因此性能是一个问题。

0 投票
1 回答
122 浏览

postgresql - 优化多个 OR 查询

我有一个数据库表,我需要验证用户是否输入了相同或部分相同的信息。

这就是我的想法

数据库布局

查询

如果任何数据匹配(是的,这将是误报),我需要旧的 rec_id。

想知道是否有更好的方法来做到这一点?

谢谢

0 投票
2 回答
991 浏览

sql - 优化 UNION MySQL 查询,其中两个查询使用大量相同的表

我在 MySQL 中使用 UNION 来将两个单独查询的结果组合在一起。这两个查询使用了很多相同的表。有没有办法利用这一点来优化查询?

它很长,所以不要觉得有义务阅读整本书。要点很简单,联合两边的查询使用了很多相同的表。

0 投票
2 回答
2057 浏览

sql - 消除 SQL 中的交叉连接

我正在尝试优化包含交叉连接的查询。我有大型查询,我继续与派生表交叉连接。

是否会通过将派生表转换为视图来提高查询速度?或者甚至在永久表中捕获这些信息?

这是我的查询

这是一个很长的查询,所以不需要全部阅读。要点很简单,就是有一个交叉连接。我是 sql 新手,但有人告诉我交叉连接会减慢速度。

0 投票
1 回答
207 浏览

sql - SQL:速度改进 - 杂乱的联合查询

表格人口示例

current_tbl:

进口表格:

预期输出:

执行此方法可以消除该行所在的条件:

但它保留了A3行


我希望这是有道理的,我没有过度简化它。这是我的另一个问题的延续问题。这些改进的连续性使查询从〜32000ms下降到现在的〜1200ms - 相当大的改进。

我怀疑我可以通过UNION ALL在子查询中使用进行优化,当然还有通常的索引优化,但我正在寻找最好的 SQL 优化。仅供参考,这种特殊情况适用于 PostgreSQL。

0 投票
3 回答
298 浏览

php - 需要查看一个日期范围是否与sql中的另一个日期范围重叠

我有一个存储房间预订的表,架构是:

我需要对一组日期范围内可用/不可用的房间运行搜索查询。

另请记住,还有另一个表格,其中包含预订房间的日期及其格式:

所以我需要运行一个查询来查找设定范围内的可用房间,我将如何制定查询?我在这里使用 MySQL。

- -编辑 - -

还有一个模式的房间表:

unavailability/prebooked dates表基本上是零星的单个日期,unavailability表中的每个日期都是指由于某种原因无法预订房间的日期,例如:维护等

0 投票
5 回答
408 浏览

php - 计算介于预定义日期范围之间的天数

这是一个复杂的情况。我有一个预订系统,可以预订房间。

问题是房间的价格不是作为一个单一的值存储的,而是基于周期的。就像一个房间在 9 月到 12 月之间可以有一个每日房价,从 3 月到 8 月可以有不同的房价,而在其他情况下可以有一个基本房价。

费率表是这样的:

假设 3 月 1 日至 3 月 31 日期间的房间价格为 20 美元/天,4 月 15 日至 5 月 30 日同一房间的价格为 30 美元,此外该价格是 15 美元/天的固定价格。

如果此房间由一位客户在 3 月 15 日至 5 月 10 日期间预订,则总费用为:

现在如何在代码中计算这个值,如果有的话,我需要根据费率周期计算天数,否则为它们使用基本费率。它很复杂,但就是这样。我正在使用 php MySQL