gpt4 book ai didi

sql - 在 SQLite 上添加 ORDER BY 需要花费大量时间

转载 作者:行者123 更新时间:2023-12-05 09:36:51 31 4
gpt4 key购买 nike

我编写了以下查询:

WITH m2 AS (
SELECT m.id, m.original_title, m.votes, l.name as lang
FROM movies m
JOIN movie_languages ml ON m.id = ml.movie_id
JOIN languages l ON l.id = ml.language_id
)
SELECT m.original_title
FROM movies m
WHERE NOT EXISTS (
SELECT 1
FROM m2
WHERE m.id = m2.id AND m2.lang <> 'English'
)

结果在 1.5 秒后出现。

在查询末尾添加以下行后,运行它至少需要 5 分钟:

ORDER BY votes DESC;

这不是数据的大小,因为整个表上的 ORDER BY 会立即返回结果。

我做错了什么?为什么 ORDER BY 添加了这么多时间? (查询 SELECT * FROM movies ORDER BY votes DESC 立即返回)。

最佳答案

CTE 中的 order by 是无关紧要的。但我建议为此目的进行聚合:

SELECT m.original_title
FROM movies m JOIN
movie_languages ml
ON m.id = ml.movie_id JOIN
languages l
ON l.id = ml.language_id
GROUP BY m.original_title, m.id
HAVING SUM(lang = 'English') = 0;

关于sql - 在 SQLite 上添加 ORDER BY 需要花费大量时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64877147/

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