为啥 CURRENT_DATE() 会导致查询不被缓存?

Posted

技术标签:

【中文标题】为啥 CURRENT_DATE() 会导致查询不被缓存?【英文标题】:Why does CURRENT_DATE() cause queries to not be cached?为什么 CURRENT_DATE() 会导致查询不被缓存? 【发布时间】:2017-10-07 00:17:36 【问题描述】:

与其他时间函数不同,它会在 24 小时内返回相同的答案,因此它阻止查询缓存似乎很奇怪。这是错误还是预期行为?

我想在日期分区表(昨天到 8 天前)上保存具有固定滚动日期窗口的视图,但如果我需要在 bigquery 之外构建日期以确保缓存,则这是不可能的。

【问题讨论】:

在此期间 - 使用 Apps 脚本每 24 小时重建一次以静态方式反映当前日期的视图如何? 谢谢@FelipeHoffa 我可以做到。我不知道应用程序脚本可以访问 bigquery!我想将此视图挂起授权视图,这是一个中间步骤,将它全部包含在 bigquery 中会很棒。无论如何感谢提示 看来这里有解决办法:***.com/a/39734030/432914 【参考方案1】:

这是为了避免对不同的功能有特殊的缓存逻辑。您可以提交feature request on the issue tracker,但我怀疑它相对于其他问题不会是一个高优先级。

【讨论】:

感谢@Elliott 很有趣,因为我认为这些函数会在传递到缓存层之前进行计算,以提高效率。相对日期在视图(带有缓存)中会很有用。我会提出一个问题。再次感谢。

以上是关于为啥 CURRENT_DATE() 会导致查询不被缓存?的主要内容,如果未能解决你的问题,请参考以下文章

为啥推迟开始日期会导致 Google Analytics(分析)报告查询返回 0 结果?

为啥Mysql的左连接条件不被遵守?

为啥在查询中设置 group_concat_max_len 变量会导致 PHP 的 bind_param() 出错?

为啥过滤时使用相同的字段会导致不同的执行时间? (不同的索引用法)

为啥 var 不被弃用?

带有 CURRENT_DATE - 1 的 JPQL 查询不起作用