除了UDF,MySQL还支持各种各样的插件。这些插件可以在MySQL中新增启动选项和状态值,还可以新增INF0RMATI0N_SCHEMA表,或者在MySQL的后台执行任务,等等。
在MySQL5.1和更新的版本中,MySQL新增了很多的插件接口,使得你无须直接修改MySQL的源代码就可以大大扩展它的功能。下面是一个简单的插件列表。
存储过程插件
存储过程插件可以帮你在存储过程运行后再处理一次运行结果。这是一个很古老的插件了,和UDF有些类似,多数人都可能忘记了这个插件的存在。内置的PROCEDURE ANALYSE就是一个很好的示例。
后台插件
后台插件可以让你的程序在MySQL中运行,可以实现自己的网络监听、执行自己的定期任务。后台插件的一个典型例子就是在Percona Server中包含的Handler-Socket插件。它监听一个新的网络端口,使用一个简单的协议可以帮你无须使用SQL接口直接访问InnoDB数据,这也使得MySQL能够像一些NoSQL—样具有非常髙的性能。
INFORMATION_SCHEMA插件
这个插件可以提供一个新的内存INFORMATION_SCHEMA表。
全文解析插件
这个插件提供一种处理文本的功能,可以根据自己的需求来对一个文档进行分词,所以如果给定一个PDF文档目录,可以使用这个插件对这个文档进行分词处理。也可以用此来增强査询执行过程中的词语匹配功能。
审计插件
审计插件在査询执行的过程中的某些固定点被调用,所以它可以用作(例如)记录MySQL的事件日志。
认证插件
认证插件既可以在MySQL客户端也可在它的服务器端,可以使用这类插件来扩展MySQL的认证功能,例如可以实现PAM和LDAP认证。
要了解更多细节,可以参考MySQL的官方手册,或者读读由Sergei Golubchik和Andrew Hutchings(Packt)编写的MySQL 5.1 Plugin Development。如果你需要一个插件,但是却不知道怎么实现,有很多公司都提供这类咨询服务,例如Monty Program、Open Query、Percona和SkySQL。可能未来8.0或者更新版本会有更改,这里只是以5.X做一个参考。