MySQL 支持可加载函数,即不是内置的函数,但可以在运行时(无论是在启动时还是后期)加载以扩展服务器功能,或者卸载以删除功能。有关可加载函数的表格,请参见 第 14.2 节,“可加载函数参考”。可加载函数与内置(本机)函数不同,后者是服务器的一部分,总是可用的;有关表格,请参见 第 14.1 节,“内置函数和操作符参考”。
可加载函数以前称为用户定义函数(UDF)。该术语有点误导,因为 “用户定义” 也可以应用于其他类型的函数,例如存储函数(使用 SQL 编写的存储对象)和通过修改服务器源代码添加的本机函数。
MySQL 发行版包括可加载函数,实现了以下服务器功能:
-
组复制使您可以创建一个高度可用的分布式 MySQL 服务,跨多个 MySQL 服务器实例,具有数据一致性、冲突检测和解决、组成员资格服务等功能。请参见 第 20 章 组复制。
-
MySQL Enterprise Edition 包括基于 OpenSSL 库的加密操作函数。请参见 第 8.6 节,“MySQL Enterprise 加密”。
-
MySQL Enterprise Edition 包括提供 SQL 级别 API 的掩码和去标识操作函数。请参见 MySQL Enterprise 数据掩码和去标识元素。
-
MySQL Enterprise Edition 包括用于监控和记录连接和查询活动的审核日志记录功能。请参见 第 8.4.5 节,“MySQL Enterprise 审核”,和 第 8.4.6 节,“审核消息组件”。
-
MySQL Enterprise Edition 包括一个防火墙功能,实现了应用程序级别的防火墙,以便数据库管理员可以根据语句模式来允许或拒绝语句执行。请参见 第 8.4.7 节,“MySQL Enterprise 防火墙”。
-
查询重写器检查 MySQL 服务器收到的语句,并可能在服务器执行它们之前重写它们。请参见 第 7.6.4 节,“重写器查询重写插件”
-
版本令牌使应用程序可以创建和同步服务器令牌,以防止访问不正确或过时的数据。请参见 第 7.6.6 节,“版本令牌”。
-
MySQL 密钥环提供了安全的敏感信息存储。请参见 第 8.4.4 节,“MySQL 密钥环”。
-
锁定服务提供了应用程序锁定接口。请参见 第 7.6.9.1 节,“锁定服务”。
-
一个函数提供了查询属性访问。请参见 第 11.6 节,“查询属性”。
以下部分描述了如何安装和卸载可加载函数,以及如何在运行时确定哪些可加载函数已安装并获取关于它们的信息。
在某些情况下,一个可加载函数是通过安装实现该函数的组件来加载的,而不是直接加载该函数。有关特定可加载函数的详细信息,请参见该服务器功能的安装说明。
有关编写可加载函数的信息,请参见 添加函数到 MySQL。