我试图创建一个显示最多查看文档的脚本,但是它正在磁盘上创建许多临时表。
这是查询,我看不到错误在哪里或查询变成滥用。
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.cnt
和nots.fch
上添加索引。
运行explain
也是一个好习惯:
explain select notas.notid, ...
输出将告诉您是否使用了按键,以及不使用按键。
关于mysql - 我无法使此查询更有效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18998080/