gpt4 book ai didi

mysql - 我可以优化这个查询吗?

转载 作者:行者123 更新时间:2023-11-29 02:00:41 27 4
gpt4 key购买 nike

这个非常简单的查询要花很多时间:

SELECT text, url, docid 
FROM retrieve
LEFT JOIN citations2
ON citations2.fromdoc = retrieve.docid
WHERE citations2.todoc IS NULL
LIMIT 10;

它有一个带有 NULL 条件的左连接...这可能是原因吗?我到处都放了索引。

这是慢查询日志:

# Time: 130404  8:00:31
# User@Host: em[em] @ zebra [130.239.162.142]
# Query_time: 27.006579 Lock_time: 0.000019 Rows_sent: 0 Rows_examined: 90682
use em_bg04;
SET timestamp=1365055231;
SELECT text, url, docid FROM retrieve LEFT JOIN citations2 ON citations2.fromdoc = retrieve.docid WHERE citations2.todoc IS NULL LIMIT 10;

这里是所涉及表的示意图,以及大小(继续向下滚动以查看查询的 EXPLAIN 输出)

Table citations2

Table retrieve

这是 EXPLAIN 的输出:

enter image description here

所以看起来它必须遍历整个表...。我当然读了this ,但我无法理解它。那么,有没有办法让这个查询更快?

最佳答案

试试这个查询

你正在利用短路,所以如果第一个条件为假,它不会去检查第二个条件..

希望对你有帮助

SELECT 
text,
url,
docid
FROM
retrieve
LEFT JOIN
citations2
ON
citations2.todoc IS NULL AND
citations2.fromdoc = retrieve.docid
LIMIT 10;

关于mysql - 我可以优化这个查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15807208/

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