gpt4 book ai didi

php - 左连接 | ORDER BY查询速度

转载 作者:行者123 更新时间:2023-11-29 02:21:17 25 4
gpt4 key购买 nike

我的网站中有一个查询造成了速度瓶颈。一位经验丰富的 PHP/MySql 开发人员查看了查询并立即发现了问题,解释了一些关于应该如何优化结构的问题,然后(不幸的是,许多 Web 开发人员都会这样)很快就消失了。

这是有问题的查询:

SELECT DISTINCT a.id, a.title, a.thumb_image 
FROM artwork a
LEFT JOIN galleries_artwork ga
ON a.id = ga.artwork_id
WHERE ga.galleries_id = $gallery_id
ORDER BY ga.position

他曾说过,查询对结果集进行排序的方式比将其重写为放在开头时花费的时间长 3 倍[...这里是我不记得他解释的确切内容的地方]。

谁能从速度优化的角度看出这有什么问题,并解释它以及什么可以优化它?

非常感谢!

最佳答案

distinct 是一个主要问题。此外,由于 where 子句,您正在将 left join 转换为 inner join,所以这可能是您想要的:

SELECT a.id, a.title, a.thumb_image 
FROM artwork a JOIN
galleries_artwork ga
ON a.id = ga.artwork_id
WHERE ga.galleries_id = $gallery_id
ORDER BY ga.position

galleries_artwork(galleryies_id, position, artwork_id)artwork(id, title, thumb_image) 上的索引最适合此版本的查询。

关于php - 左连接 | ORDER BY查询速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31492180/

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