В MySQL или любом другом сервере SQL, таком как MSSQL или Oracle, хранимые процедуры значительно увеличивают скорость выполнения запросов, поскольку они уже скомпилированы. Хранимые процедуры более безопасны, чем прямые запросы, и как объект в базе данных они могут управляться владельцем, предоставляя право доступа каждому пользователю.
Используя хранимые процедуры, вы также можете скрыть логику запросов и процедур и предоставить команде разработчиков и другим программистам «черный ящик», в который они вставляют параметры и получают результаты.
Окончательно хранимые процедуры пород !!!!
Из документации MySQL 5.1:
Сохраненные процедуры могут быть особенно полезны в определенных ситуациях:
Когда несколько клиентских приложений написаны на разных языках или работают на разных платформах, но должны выполнять одни и те же операции с базой данных.
Когда безопасность имеет первостепенное значение. Банки, например, используют хранимые процедуры и функции для всех общих операций. Это обеспечивает согласованную и безопасную среду, и подпрограммы могут гарантировать, что каждая операция должным образом регистрируется. При такой установке приложения и пользователи не будут иметь прямого доступа к таблицам базы данных, а смогут выполнять только определенные сохраненные подпрограммы.
Хранимые подпрограммы могут обеспечить улучшенную производительность, поскольку между сервером и клиентом необходимо передавать меньше информации. Компромисс заключается в том, что это увеличивает нагрузку на сервер базы данных, поскольку большая часть работы выполняется на стороне сервера, а меньшая - на стороне клиента (приложения). Учтите это, если многие клиентские машины (например, веб-серверы) обслуживаются только одним или несколькими серверами баз данных.
Хранимые подпрограммы также позволяют вам иметь библиотеки функций на сервере базы данных. Это функция, используемая в современных языках приложений, которая позволяет такое проектирование внутренне (например, с помощью классов). Использование этих возможностей языка клиентских приложений полезно для программиста даже за пределами использования базы данных.