【发布时间】:2014-07-30 09:11:35
【问题描述】:
我有一个查询在我当前的 PC 上运行良好,这是我的开发 PC,但不是在生产环境中。
两个环境具有相同的材质配置。 数据库的设置是一样的。
在开发中,查询在不到 30 秒内执行,但是当我在生产环境中尝试时,即使 2 小时后我也没有得到结果。
这是执行时服务器上唯一正在运行的查询。
你知道为什么会这样吗?
SELECT td.td_date,
td.td_number,
td.td_status,
td.td_open_datetime,
td.td_update_datetime,
Min(ack.ackup) ackUpdate
FROM t_ticketdossier_td td
INNER JOIN (SELECT a.td_number,
a.td_update_datetime ackUp
FROM t_ticketdossier_td a
WHERE a.td_status = 'Acknowledged') ack
ON td.td_number = ack.td_number
AND td.td_update_datetime <= ack.ackup
WHERE td.td_number IN (SELECT td_number
FROM t_ticketdossier_td base
WHERE Date(base.td_date) = @date
AND base.td_status = 'Acknowledged'
AND base.td_scope IS NULL
AND base.td_subcategory NOT LIKE '%RDV%'
AND base.td_product_type NOT LIKE '%RDV%'
GROUP BY td_number)
AND td.td_status = 'Affected'
GROUP BY td.td_date,
td.td_number,
td.td_status,
td.td_update_datetime
抱歉链接,我没有足够的声誉直接发布图片。
干杯, 马克西姆。
【问题讨论】:
-
我怀疑生产服务器的数据比你的开发电脑多。
-
PLs 检查你的开发者的所有索引。环境也是在生产环境中创建的。
-
你能告诉我们查询的一些部分吗?
-
生产服务器和开发服务器的数据是一样的。所有的指标也是一样的。我制作了一个转储文件并将其导入我的开发服务器。
-
@MaximeMangel 当您比较两台机器上的
EXPLAIN语句时,它们有什么不同吗?
标签: mysql performance