Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 我怎样才能加快这个报告的速度?_Mysql - Fatal编程技术网

Mysql 我怎样才能加快这个报告的速度?

Mysql 我怎样才能加快这个报告的速度?,mysql,Mysql,有人能告诉我为什么这么慢,以及如何纠正它吗?即使上面有“限制1”,运行也需要15秒。即使没有子查询,仍然需要10秒 SELECT SP_GETCODECODE(t9mod) AS 'Mod', p.rrnhs AS NHS, CONCAT(p.idfnam, ' ', p.idnam) AS 'Name', (SELECT e.c1k FROM electrolytes e WHERE p.oid = e.fk_oid

有人能告诉我为什么这么慢,以及如何纠正它吗?即使上面有“限制1”,运行也需要15秒。即使没有子查询,仍然需要10秒

SELECT 
SP_GETCODECODE(t9mod) AS 'Mod',
p.rrnhs AS NHS,
CONCAT(p.idfnam, ' ', p.idnam) AS 'Name',
(SELECT 
        e.c1k
    FROM
        electrolytes e
    WHERE
        p.oid = e.fk_oid
    ORDER BY e.c1date DESC
    LIMIT 1) AS 'Potassium'
FROM
timeline t1
    LEFT JOIN
person p ON t1.fk_oid = p.oid
WHERE
t1.oid = (SELECT 
        t2.oid
    FROM
        timeline t2
    WHERE
        t2.fk_oid = t1.fk_oid
    ORDER BY t2.oid DESC
    LIMIT 1)
    AND t9mod IN (19301 , 19302,
    19304,
    19309,
    19371,
    5106,
    5120,
    140055,
    140067)
    AND p.isactive = - 1
LIMIT 1
这里的想法是从时间轴中提取所有记录,其中一个T9MOD代码作为WHERE中的顶部条目。以及PERSON表中的患者姓名,然后子查询从电解质中提取患者最新的钾

在研究和编译这篇文章时,我已经用尽了我的编码能力,但作为一名新手,我无法理解如何让它更快

谢谢


Mike

请发布create table语句,包括所有相关表的索引和记录计数。请同时发布上述查询的解释。首先你应该声明索引,然后尽量避免子查询。我不确定它是否能像预期的那样工作,但我会这样做:
选择SP_GETCODECODE(t9mod)作为'Mod',选择p.rrnhs作为NHS,选择CONCAT(p.idfnam',p.idnam)作为'Name',e.c1k作为时间线t1中的“钾”在t2上连接时间线t2.fk_oid=t1.fk_oid左连接人p在t1.fk_oid=p.oid左连接电解质e在p.oid=e.fk_oid上,其中t9mod IN(19301930219304193091937151065140067)和p.isactive=-1组按t1.oid顺序按t2.oid描述,e.c1date DESC LIMIT 1
请发布create table语句,包括所有相关表格的索引和记录计数。请同时发布上述查询的解释。首先你应该声明索引,然后尽量避免子查询。我不确定它是否能像预期的那样工作,但我会这样做:
选择SP_GETCODECODE(t9mod)作为'Mod',选择p.rrnhs作为NHS,选择CONCAT(p.idfnam',p.idnam)作为'Name',e.c1k作为时间线t1中的“钾”在t2上连接时间线t2.fk_oid=t1.fk_oid左连接人p在t1.fk_oid=p.oid左连接电解质e在p.oid=e.fk_oid上,其中t9mod IN(19301930219304193091937151065140067)和p.isactive=-1组按t1.oid顺序按t2.oid描述,e.c1date描述限制1