我试图创建一个显示最多查看文档的脚本,但是它正在磁盘上创建许多临时表。
这是查询,我看不到错误在哪里或查询变成滥用。

select
notas.notid,
notas.ttl,
notas.brv,
notas.fch,
nots.notid,
nots.cnt,
nots.fch,
nots.sccn,
SUM(nots.hit) AS lasuma
FROM cadenano_cbc_noticias.notas
INNER JOIN cadenano_cbc_relacbc.nots
ON notas.notid = nots.notid
WHERE nots.cnt = 'notas'
AND nots.fch BETWEEN CURDATE() - INTERVAL 3 DAY AND CURDATE()
GROUP BY nots.notid
ORDER BY lasuma DESC
LIMIT 10


有人能指出我正确的方向吗?

最佳答案

如果查看查询中使用数据进行计算的部分,则可以加快查询速度:大多数是where子句和order子句。

如果还没有,请在nots.cntnots.fch上添加索引。

运行explain也是一个好习惯:

explain select notas.notid, ...


输出将告诉您是否使用了按键,以及不使用按键。

关于mysql - 我无法使此查询更有效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18998080/

10-09 06:47