gpt4 book ai didi

mysql - 同表LEFT JOIN的速度 - Mysql

转载 作者:太空宇宙 更新时间:2023-11-03 11:48:30 25 4
gpt4 key购买 nike

我有一个名为 PRODUCTS 的表。它有一个语言字段。我想列出 language = 'es' 的所有行,这些行确实缺少其他语言的翻译(相应的 ID)。我尝试了以下方法(id_products 是不同语言的同一产品的关键相关行)。它非常慢(几千行几秒钟):

SELECT
*
FROM
products AS source
LEFT JOIN products AS target ON source.id_products = target.id_products
AND source.`language` = 'es'
AND target.`language` = 'en'
WHERE
target.id_products IS NULL

最佳答案

我的猜测是,这是由于表上缺少索引而发生的。

尝试在 (id_products,language) 上添加索引,这应该会加快您的查询速度。

此外,您可以尝试使用 NOT EXISTS() 而不是左连接,也许它也会加快速度:

SELECT * FROM products t
WHERE t.language = 'es'
AND NOT EXISTS(SELECT 1 FROM products s
WHERE s.language = 'en'
and s.id_products = t.id_products)

关于mysql - 同表LEFT JOIN的速度 - Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37006969/

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