将MySQL 5.6/MySQL插件API/插件API特性

4.2插件API特性

服务器插件API有以下特征:

  • 所有插件都有几个共同点。

    每个插件都有一个可以在SQL语句中引用的名称,以及其他元数据,如作者和提供其他信息的描述。这些信息可以在INFORMATION_SCHEMA。插件表或使用显示插件声明。

  • 插件框架是可扩展的,以适应不同类型的插件。

    尽管插件API的某些方面对所有类型的插件都是通用的,但是API也允许特定于类型的接口元素,这样就可以创建不同类型的插件。一个具有单一用途的插件可以有一个最适合其自身需求的接口,而不是其他插件类型的需求。

    有几种类型插件的接口,例如存储引擎、全文解析器和INFORMATION_SCHEMA表。其他可以添加。

  • 插件可以向用户公开信息。

    插件可以实现可用的系统和状态变量显示变量而且显示状态语句。

  • 插件API包含版本信息。

    插件API中包含的版本信息使插件库及其包含的每个插件能够根据用于构建库的API版本进行自识别。如果API随时间变化,版本号也会变化,但服务器可以检查给定插件库的版本信息,以确定它是否支持该库中的插件。

    版本号有两种类型。第一个是通用插件框架本身的版本。每个插件库都包含这种版本号。第二种版本类型适用于单个插件。每个特定类型的插件都有其接口的版本,因此库中的每个插件都有特定于类型的版本号。例如,一个包含全文解析器插件的库有一个通用的插件API版本号,而该插件有一个特定于全文插件接口的版本号。

  • 插件API实现了安全限制。

    插件库必须安装在一个特定的专用目录中,该目录的位置由服务器控制,并且不能在运行时更改。此外,库必须包含特定的符号来标识它是一个插件库。如果某个东西不是作为插件构建的,服务器就不会将它作为插件加载。

  • 插件可以访问服务器服务。

    服务接口公开了插件可以使用普通函数调用访问的服务器功能。有关详细信息,请参见MySQL插件服务

在某些方面,服务器插件API类似于它所取代的旧的用户定义函数(UDF) API,但是插件API比旧的接口有几个优点。例如,udf没有版本控制信息。另外,新的插件接口消除了旧UDF接口的安全问题。编写非插件UDF的旧接口允许从系统的动态链接器搜索的任何目录加载库,标识UDF库的符号相对来说是非特定的。

客户端插件API具有类似的体系结构特征,但是客户端插件不能像服务器插件那样直接访问服务器。