gpt4 book ai didi

mysql - 有没有更有效的方法来编写这个 MySQL 查询?

转载 作者:太空宇宙 更新时间:2023-11-03 10:51:58 28 4
gpt4 key购买 nike

我有以下查询,它需要很长时间才能运行,我想知道是否有更有效的编码方式。我有两个表 DEVICE_LASTUPDATE 和 DEVICE_EVENTS。

DEVICE_LASTUPDATE 表有大约 14 条记录,如下所示:

DEVICE_ID   LAST_UPDATE
device1 2014-06-01 08:25:23
device2 2014-06-01 09:01:45
device3 2014-06-01 07:43:06
device4 2014-06-01 11:13:14
...etc

DEVICE_EVENTS 表有超过一百万条记录,如下所示:

DEVICE_ID   CREATED_DATE         EVENT_CODE
device1 2014-06-01 08:25:23 1011
device1 2014-06-01 09:01:45 2025
device3 2014-06-01 07:43:06 1015
device2 2014-06-01 15:13:09 2115
device1 2014-06-01 11:20:19 1551
...etc

我想要的是为 DEVICE_LASTUPDATE 中的每个 DEVICE_ID 找到 DEVICE_LASTUPDATE.LAST_UPDATE = DEVICE_EVENTS.CREATED_DATE 并返回这些 DEVICE_ID 的 EVENT_CODE

以下 SQL 是我运行的,它可以运行,但速度很慢(平均 5.5 秒):

SELECT * FROM (SELECT * FROM DEVICE_LASTUPDATE) AS lastupdate 
JOIN DEVICE_EVENTS
WHERE DEVICE_EVENTS.CREATED_DATE = lastupdate.LAST_UPDATE
AND DEVICE_EVENTS.DEVICE_ID = lastupdate.DEVICE_ID

最佳答案

SELECT LU.DEVICE_ID, E.EVENT_CODE
FROM DEVICE_LASTUPDATE LU
JOIN DEVICE_EVENTS E
ON (LU.DEVICE_ID = E.DEVICE_ID AND LU.LAST_UPDATE = E.CREATED_DATE);

另外考虑在 LU.DEVICE_ID, LU.LAST_UPDATEE.DEVICE_ID, E.CREATED_DATE 上添加索引。

关于mysql - 有没有更有效的方法来编写这个 MySQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24064814/

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