## 5.7 MySQL 服务器可加载函数

[5.7.1 安装和卸载可加载函数](function-loading.html)
[5.7.2 获取可加载函数的信息](obtaining-loadable-function-information.html)

[](<>)[](<>)[](<>)

MySQL 支持可加载函数，即未内置但可以在运行时（在启动期间或以后）加载以扩展服务器功能，或卸载以删除功能的函数。有关描述可用可加载函数的表，请参阅[第 12.2 节，“可加载函数参考”](loadable-function-reference.html).可加载函数与内置（本机）函数形成对比，后者作为服务器的一部分实现并且始终可用；对于表，请参阅[第 12.1 节，“内置函数和运算符参考”](built-in-function-reference.html).

笔记

可加载函数以前称为用户定义函数 (UDF)。这个术语有点用词不当，因为“用户定义”也可以应用于其他类型的函数，例如存储函数（一种使用 SQL 编写的存储对象）和通过修改服务器源代码添加的本机函数。

MySQL 发行版包括可加载的函数，它们全部或部分实现这些服务器功能：

-   组复制使您能够跨一组 MySQL 服务器实例创建高度可用的分布式 MySQL 服务，并内置数据一致性、冲突检测和解决以及组成员资格服务。看[第十八章，*组复制*](group-replication.html).

-   MySQL 企业版包括基于 OpenSSL 库执行加密操作的函数。看[第 6.6 节，“MySQL 企业加密”](enterprise-encryption.html).

-   MySQL 企业版包括为屏蔽和去标识化操作提供 SQL 级 API 的函数。看[第 6.5.1 节，“MySQL 企业数据屏蔽和去标识化元素”](data-masking-elements.html).

-   MySQL 企业版包括用于监控和记录连接和查询活动的审计日志。看[第 6.4.5 节，“MySQL 企业审计”](audit-log.html)， 和[第 6.4.6 节，“审计消息组件”](audit-api-message-emit.html).

-   MySQL 企业版包括一个防火墙功能，它实现了应用程序级防火墙，使数据库管理员能够根据与接受语句的模式匹配来允许或拒绝 SQL 语句执行。看[第 6.4.7 节，“MySQL 企业防火墙”](firewall.html).

-   查询重写器检查 MySQL 服务器收到的语句，并可能在服务器执行它们之前重写它们。看[第 5.6.4 节，“重写器查询重写插件”](rewriter-query-rewrite-plugin.html)

-   版本令牌支持围绕服务器令牌创建和同步，应用程序可以使用这些令牌来防止访问不正确或过时的数据。看[第 5.6.6 节，“版本令牌”](version-tokens.html).

-   MySQL Keyring 为敏感信息提供安全存储。看[第 6.4.4 节，“MySQL 密钥环”](keyring.html).

-   锁定服务为应用程序使用提供锁定接口。看[第 5.6.9.1 节，“锁定服务”](locking-service.html).

-   函数提供对查询属性的访问。看[第 9.6 节，“查询属性”](query-attributes.html).

    以下部分描述了如何安装和卸载可加载函数，以及如何在运行时确定安装了哪些可加载函数并获取有关它们的信息。

    在某些情况下，可加载函数是通过安装实现该功能的组件来加载的，而不是直接加载该函数。有关特定可加载功能的详细信息，请参阅包含该功能的服务器功能的安装说明。

[](<>)

有关编写可加载函数的信息，请参阅[向 MySQL 添加函数](https://dev.mysql.com/doc/extending-mysql/8.0/en/adding-functions.html).
