gpt4 book ai didi

MySQL 计数优化

转载 作者:行者123 更新时间:2023-11-29 01:04:33 25 4
gpt4 key购买 nike

我想将 mysql 计数查询的加载时间从 2.5 秒减少。查询中的所有列都有一个索引。

SELECT COUNT(1)
FROM song AS s
JOIN song_text AS st
ON(st.song_id = s.song_id)
JOIN phpfox_user AS u
ON(u.user_id = s.user_id)
WHERE st.lyrics LIKE '%a%' AND s.is_active = 1 AND s.public = 1

获取返回行的查询在 0.0009060 秒内加载。

SELECT s.*, st.lyrics, u.first_name
FROM song AS s
JOIN song_text AS st
ON(st.song_id = s.song_id)
JOIN phpfox_user AS u
ON(u.user_id = s.user_id)
WHERE st.lyrics LIKE '%a%' AND s.is_active = 1 AND s.public = 1
ORDER BY s.date_added DESC
LIMIT 12

为什么计数查询的加载时间明显多于返回行的查询?可以做些什么来将计数查询的加载时间减少到与其他查询类似的程度?

最佳答案

你关心计数中的 u.first_name 值吗?如果不是,则删除第二个连接,它似乎没有增加任何值(value)。

此外,尝试使用歌曲表中的 count(s.song_id) 而不是 count(1)。我不确定这是真正的优化还是我的想象。

关于MySQL 计数优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9184749/

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