如何缓存mysql存储的函数

时间:2014-01-09 05:33:01

标签: php mysql stored-procedures mariadb stored-functions

我有一个mysql查询,它使用存储的函数为报告做一些繁重的数学运算。我需要在同一个查询中使用该存储函数,如4或5次。但是该函数需要迭代中的数据,因此我无法将其设置为变量。

如果参数相同,是否有任何方法可以缓存函数?我们可以自己构建它,检查参数和缓存表,如果它们是相同的,只需立即返回。但我想知道MySql是否内置了这个。使用MariaDB 10

这是一个函数调用的例子

dailySales2(sku.sku) as daily,
countOrders(sku.sku,90) as sold90,
ROUND(getStock(sku.sku) / dailySales2(sku.sku)) as daysOfStock,
getStock(sku.sku) as stock,
ROUND(GREATEST(1,qb.moq,(dailySales2(sku.sku) * (ROP + 5)) - (getStock(sku.sku)))) as   toOrder,

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试过嵌套查询?

在:

SELECT sproc(col), ROUND(sproc(col)) FROM tbl

后:

SELECT result, ROUND(result) FROM
(SELECT sproc(col) FROM tbl) AS nested