【问题标题】:MySQL - CREATE FUNCTION ? MODIFIES SQL DATA?MySQL - 创建函数?修改 SQL 数据?
【发布时间】:2012-02-25 18:47:53
【问题描述】:

我即将用 MySQL 写一个CREATE FUNCTION,我想知道CREATE TEMPORARY TABLE 是否计入标志MODIFIES SQL DATA。 函数不修改任何永久表,只是为了优化目的而创建的临时表。

我应该使用标志MODIFIES SQL DATA还是只使用READS SQL DATA
无论如何,使用MODIFIES SQL DATAREADS SQL DATA 标志有什么真正的好处

【问题讨论】:

    标签: mysql sql syntax create-function


    【解决方案1】:

    截至目前(MySQL 5.5),这些特性仅用作代码内文档。

    来自http://dev.mysql.com/doc/refman/5.5/en/create-procedure.html

    几个特征提供了有关数据性质的信息 按常规使用。在 MySQL 中,这些特性只是建议性的。 服务器不使用它们来限制什么样的语句 例程将被允许执行。

    这与(NON)DETERMINISTIC 子句形成对比,后者作为优化器是否可以缓存函数结果的提示。

    【讨论】:

    • :: 谢谢!提到(NON)DETERMINISTIC 我想知道是否可以(以某种方式)清除此类缓存。就我而言,数据库表每月修改一次,因此最好缓存结果并优化响应时间,如果有某种方法,如何清除缓存,当数据库表的更新完成时。有什么建议吗?
    • @stackoverflow:查找查询缓存 dev.mysql.com/doc/refman/5.5/en/query-cache.html 。基本上,只要基础表中的数据更新,它就会刷新。
    猜你喜欢
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多