Хранимые процедуры MySQL используют их или не используют их - PullRequest
59 голосов
/ 16 июня 2011

Мы находимся в начале нового проекта, и нам действительно интересно, должны ли мы использовать хранимые процедуры в MySQL или нет.

Мы будем использовать хранимые процедуры только для вставки и обновления сущностей бизнес-модели.Существует несколько таблиц, представляющих сущность модели, и мы бы абстрагировали ее в этих хранимых процедурах insert / update.

С другой стороны, мы можем вызывать insert и update со слоя Model, но не в MySQL, аPHP.

По вашему опыту, Какой вариант лучше?Преимущества и недостатки обоих подходов.Какой из них самый быстрый с точки зрения высокой производительности?

PS: Это веб-проект, в основном предназначенный для чтения, а высокая производительность является наиболее важным требованием.

Ответы [ 12 ]

0 голосов
/ 30 августа 2018

Я думаю, что существует много дезинформации о запросах, хранящихся в базе данных.

Я бы рекомендовал использовать хранимые процедуры MySQL, если вы выполняете много статических запросов для манипулирования данными. Особенно, если вы перемещаете вещи из одной таблицы в другую (то есть по какой-либо причине переходите от реальной таблицы к исторической таблице). Конечно, существуют недостатки, заключающиеся в том, что вам придется вести отдельный журнал изменений к ним (теоретически вы можете создать таблицу, в которой будут храниться только изменения хранимых процедур, которые обновляет администратор БД). Если у вас есть много разных приложений, взаимодействующих с базой данных, особенно если, скажем, у вас есть настольная программа, написанная на C #, и веб-программа на PHP, может быть более выгодно хранить некоторые из ваших процедур в базе данных, поскольку они не зависят от платформы.

На этом сайте есть интересная информация, которую вы можете найти полезной.

https://www.sitepoint.com/stored-procedures-mysql-php/

Как всегда, сначала соберите песочницу и протестируйте.

0 голосов
/ 14 августа 2018

Попробуйте обновить 100 000 000 записей в действующей системе из фреймворка и дайте мне знать, как это происходит.Для небольших приложений SP не обязательны, но для больших серьезных систем они являются реальным преимуществом.

...