MySQL 5.1 and up supports a plugin API that enables creation of server components. Plugins can be loaded at server startup, or loaded and unloaded at runtime without restarting the server. The API is generic and does not specify what plugins can do. The components supported by this interface include, but are not limited to, storage engines, full-text parser plugins, and server extensions.
For example, full-text parser plugins can be used to replace or augment the built-in full-text parser. A plugin can parse text into words using rules that differ from those used by the built-in parser. This can be useful if you need to parse text with characteristics different from those expected by the built-in parser.
The plugin interface is more general than the older user-defined function (UDF) interface.
The plugin interface uses the
plugin table in
mysql database to record information about
plugins that have been installed permanently with the
INSTALL PLUGIN statement. This
table is created as part of the MySQL installation process. (If
you are upgrading from a version of MySQL older than 5.1, you
should run the mysql_upgrade command to create
this table. See Section 4.4.8, “mysql_upgrade — Check and Upgrade MySQL Tables”.) Plugins can also
be installed for a single server invocation with the
--plugin-load option. Plugins installed this way
are not recorded in the
plugin table. See
Section 126.96.36.199, “Installing and Uninstalling Plugins”.
The book MySQL 5.1 Plugin Development by Sergei Golubchik and Andrew Hutchings provides a wealth of detail about the plugin API. Despite the fact that the book's title refers to MySQL Server 5.1, most of the information in it applies to later versions as well.