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

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