Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何缓存mysql存储函数_Php_Mysql_Stored Procedures_Mariadb_Stored Functions - Fatal编程技术网

Php 如何缓存mysql存储函数

Php 如何缓存mysql存储函数,php,mysql,stored-procedures,mariadb,stored-functions,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

我有一个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,

谢谢

您是否尝试过嵌套查询

之前:

SELECT sproc(col), ROUND(sproc(col)) FROM tbl
之后:

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

我可能会使用一个内部查询来设置一组@变量,然后使用外部查询来执行逻辑。不确定这是否有效,但这是值得考虑的。