【发布时间】:2016-02-15 02:11:20
【问题描述】:
我有一个返回前 10 名销售产品的查询,并在主页上使用:
SELECT a.id, a.title, SUM(b.sold) as 'sold' FROM products a
LEFT JOIN stock b ON b.product_id = a.id
GROUP BY a.id ORDER BY sold DESC LIMIT 10
此信息不需要是最新的 - 它可能只需要每天更新一次。所以我有两个问题,真的:
1) 考虑到这是评估每个产品的销售总和(来自每个产品具有多行的库存表),这是一个计算成本高的查询 - 或者更确切地说 会是 如果这样是一个大型数据库吗?
2) MySQL 可以缓存这个查询并且每天只更新一次吗?我知道它有一个默认使用的查询缓存,但据此,每次售出商品的数量发生变化时,此查询都会失效。
老实说,我只是在寻找提高效率的方法。
【问题讨论】:
-
如何使用MySQL Event Scheduler 按计划使用昂贵查询的结果更新静态表?