gpt4 book ai didi

php - 查询耗时 30 秒

转载 作者:行者123 更新时间:2023-11-29 14:31:36 24 4
gpt4 key购买 nike

我们有一个注册系统数据库,基本上这个查询的作用是检查类(class)中的学生,以便在缺勤时可以选择将他们标记为缺勤。由于某种原因,需要 30 秒。有人知道为什么吗?

    FROM Stdts
LEFT JOIN StdtReg ON StdtReg.StdtID = Stdts.ID
LEFT JOIN usrs ON StdtReg.userID = usrs.ID
WHERE (SELECT ID FROM ClssInstncEnrol cie WHERE cie.status = 0 AND classInstanceID={$_GET['ci']} AND StdtID = Stdts.ID LIMIT 1) IS NOT NULL
OR (SELECT ID FROM DropIns di WHERE di.type <> -1 AND classInstanceID= {$_GET['ci']} AND StdtID = Stdts.ID LIMIT 1) IS NOT NULL
AND (CONCAT(Stdts.firstName, ' ', Stdts.lastName) OR CONCAT(usrs.firstName,' ', usrs.lastName))
ORDER BY firstName, lastName

最佳答案

运行前面带有“EXPLAIN”的查询,它会告诉您每个表是如何连接的以及哪里可能缺少索引。

此外,这种形式的查询将等待发生 SQL 注入(inject),并且 HTTP 参数直接插入查询中。

最后,您已经省略了一些查询和模式,但这让我觉得可以通过联接而不是子选择来完成,甚至可以作为单独的查询来更有效地生成学生 ID 列表。甚至运行主查询。

关于php - 查询耗时 30 秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9914312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com