【发布时间】:2015-06-25 12:21:05
【问题描述】:
我知道查询日志很慢,但这不只是针对超过最大执行时间的查询吗?我的问题略有不同(我认为)。
我正在运行以下查询,对我来说它似乎不应该出现问题。但是当我运行它时,“运行”时间超过 20 秒,然后它就在那里“抓取”了很长时间!由于数据库性能问题,我不得不停止它。
谁能解释我在哪里出错了。编码新手,所以请温柔。
SELECT
t1.oid,
(SELECT
DATE_FORMAT(t2.date,
'%d/%m/%y') AS 'AVF Date'
FROM
t2
WHERE
t1.oid = t2.fk_oid
AND t2.type = '-25'
AND YEAR(t2.date) BETWEEN 2005 AND 2014
ORDER BY t2.date ASC
LIMIT 1) AS 'AVF Date',
t2.site
FROM
t1
left join t2 on t1.oid=t2.fk_oid
更新 - 好的,所以我需要如下。我们有一个患者数据库,这些患者的程序记录在该数据库中。我正在尝试返回患者 oid (t1.oid) 以及他们拥有的 FIRST 程序(如果它是在 2005 年和 2014 年之间)以及他们拥有它的位置(分别为 t2.date 和 t2.site),但前提是程序属于特定类型 (t2.type = '-25')
基本上是这样。所有在 2005 年至 2014 年间发生 AVF 的患者以及 AVF 的“部位”(在本例中为左臂/右臂等)
我希望这能让它更清楚一点。
提前致谢。
米奇
【问题讨论】:
-
第一件事:当查询运行缓慢时,请始终对其执行
EXPLAIN(并将结果添加到您的问题中)。
标签: mysql performance mysql-slow-query-log