4.2插件API特性

服务器插件API具有这些特性:

  • 所有插件都有几件事。

    每个插件都有一个名称,它可以在SQL语句中引用,以及其他元数据,例如作者和提供其他信息的描述。可以在此处进行此信息Information_schema.plugins.表格或使用显示插件陈述。

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

    尽管插件API的一些方面对于所有类型的插件常见,但API也允许类型的界面元素,从而可以创建不同类型的插件。具有一个目的的插件可以具有最适合其自身要求的接口,而不是某些其他插件类型的要求。

    存在多种类型的插件的接口,例如存储引擎,全文解析器和Information_Schema.表。还可以添加其他内容。

  • 插件可以将信息暴露给用户。

    插件可以实现系统变量和状态变量显示变量显示状态陈述。

  • 插件API包括版本控制信息。

    包含在插件API中的版本信息启用插件库和每个插件,它包含它包含用于自识别用于构建库的API版本。如果API随时间变化,则版本号将更改,但服务器可以检查给定的插件库的版本信息以确定它是否支持库中的插件。

    有两种类型的版本号。第一个是常规插件框架本身的版本。每个插件库都包含此类版本号。第二种类型适用于各个插件。每个特定类型的插件都有一个界面的版本,因此库中的每个插件都有一个特定于类型的版本号。例如,包含全文PARSER插件的库具有常规插件API版本号,并且插件具有特定于全文插件界面的版本号。

  • 插件API实现安全限制。

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

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

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

在某些方面,服务器插件API类似于它取代的旧用户定义的功能(UDF)API,但是插件API与旧界面相比具有若干优点。例如,UDF没有版本控制信息。此外,较新的插件界面消除了旧UDF接口的安全问题。用于编写Nonplugin UDFS的旧接口允许从系统动态链接器搜索的任何目录加载的库,以及识别UDF库的符号相对不特异性。

客户端插件API具有类似的架构特性,但客户端插件没有直接访问服务器插件的服务器。