27.2 Использование хранимых процедур
MySQL поддерживает хранимые процедуры (процедуры и функции). Хранимая процедура — это набор операторов SQL, которые могут быть сохранены на сервере. После этого клиенты не должны постоянно переиздавать отдельные операторы, а могут вместо этого обратиться к хранимой процедуре.
Хранимые процедуры могут быть особенно полезны в определенных ситуациях:
Когда несколько клиентских приложений написаны на разных языках или работают на разных платформах, но должны выполнять одни и те же операции с базой данных.
Когда безопасность имеет первостепенное значение. Например, банки используют хранимые процедуры и функции для всех общих операций. Это обеспечивает согласованную и безопасную среду, и процедуры могут гарантировать, что каждая операция должным образом регистрируется. В такой настройке приложения и пользователи не имеют прямого доступа к таблицам базы данных, а могут выполнять только определенные хранимые процедуры.
Хранимые процедуры могут повысить производительность, поскольку требуется меньше информации для обмена между сервером и клиентом. Недостаток в том, что это увеличивает нагрузку на сервер базы данных, поскольку больше работы выполняется на стороне сервера, а меньше — на стороне клиента (приложения). Учитывайте это, если много клиентских компьютеров (например, веб-серверов) обслуживаются только одним или несколькими серверами базы данных.
Хранимые процедуры также позволяют иметь библиотеки функций на сервере базы данных. Это функция, которая есть в современных языках программирования и реализуется внутри (например, с использованием классов). Использование этих возможностей языка клиентского приложения полезно для программиста даже вне сферы использования базы данных.
MySQL использует синтаксис SQL:2003 для хранимых процедур, который также используется в DB2 от IBM. Все описанный здесь синтаксис поддерживается, а любые ограничения и расширения документированы там, где это необходимо.
Дополнительные ресурсы
Вы можете найти форум пользователей хранимых процедур полезным при работе с хранимыми процедурами и функциями.
Чтобы получить ответы на некоторые часто задаваемые вопросы о хранимых процедурах в MySQL, см. Раздел A.4, «MySQL 9.2 FAQ: Хранимые процедуры и функции».
Существуют некоторые ограничения на использование хранимых процедур. См. Раздел 27.9, «Ограничения хранимых программ».
Двоичное протоколирование для хранимых процедур происходит, как описано в Разделе 27.8, «Двоичное протоколирование хранимых программ».
© 2025 Oracle
Licensed under the GPLv2 License.