ПЕРЕЗАГРУЗКА ПЛАГИНОВ

RELOAD PLUGINS FROM SONAME 'plugin_library'

Перезагружает все плагины (UDF, ранкеры и т.д.) из указанной библиотеки. В определённом смысле процесс перезагрузки является транзакционным, обеспечивая следующее:

  1. все плагины успешно обновлены до своих новых версий;
  2. обновление атомарно, то есть все плагины заменяются одновременно. Эта атомарность гарантирует, что запросы, использующие несколько функций из перезагруженной библиотеки, никогда не смешивают старые и новые версии.

Во время RELOAD набор плагинов гарантированно согласован; они либо все старые, либо все новые.

Процесс перезагрузки также бесшовный, так как какая-то версия перезагруженного плагина всегда будет доступна для параллельных запросов, без каких-либо временных сбоев. Это улучшение по сравнению с использованием последовательных операторов DROP и CREATE для перезагрузки. При таком подходе существует краткий промежуток между DROP и последующим CREATE, в течение которого запросы технически ссылаются на неизвестный плагин и потому будут завершаться с ошибкой.

Если возникнет какая-либо ошибка, RELOAD PLUGINS не делает ничего, сохраняет старые плагины и сообщает об ошибке.

В Windows перезаписывать или удалять DLL-библиотеку, которая в данный момент используется, может быть проблематично. Тем не менее, вы всё равно можете переименовать её, разместить новую версию под старым именем, а затем RELOAD сработает. После успешной перезагрузки вы также сможете удалить переименованную старую библиотеку.

mysql> RELOAD PLUGINS FROM SONAME 'udfexample.dll';
Query OK, 0 rows affected (0.00 sec)
Last modified: August 28, 2025