【问题标题】:How to cache mysql stored functions如何缓存mysql存储的函数
【发布时间】:2014-01-09 05:33:00
【问题描述】:

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

谢谢!

【问题讨论】:

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


    【解决方案1】:

    您尝试过嵌套查询吗?

    之前:

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

    之后:

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

    【讨论】:

    • 可能我可以使用内部查询来设置一堆@variables,然后使用外部查询来执行逻辑。不确定这是否可行,但值得考虑。
    猜你喜欢
    • 1970-01-01
    • 2021-03-07
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    相关资源
    最近更新 更多