我有一张大桌子,大约需要30秒来选择我想要的方式,并且每天都在变大。我希望能够将所选内容存储在临时表或缓存中,这样就不会花费太多时间。
因为速度更为重要,所以一天中查询的表/缓存可能已经存在了几个小时,这并不困扰我。
我想有人会想知道为什么查询要花这么长时间,所以这是我每天要缓存的查询(或创建一个临时表):
select itemcode, warehouse, quantity
from transactions
where (itemcode, warehouse, recordmodified)
in ( select itemcode, warehouse, max(recordmodified)
from transactions
group by warehouse, itemcode )
group by itemcode, warehouse
(我问的是临时表,但是如果您有关于更快查询的建议,我不会介意的。)
让我这么慢的原因是我用来获取最新交易的max(recordmodified)。
我想我可以每天早上用php编写代码来删除表,进行查询并创建一个新表,但是我希望有一种方法可以在MySQL中自动执行此操作。