что именно означает не работать в базе данных, если мы можем сделать это в другом месте? - PullRequest
3 голосов
/ 13 июля 2011

http://www.percona.com/ppc2009/PPC2009_Boring_MySQL.pdf:

Не выполняйте работу в базе данных, если вы можете сделать это в другом месте

Должен сказать, я не совсем понимаю это утверждение. Кто-нибудь может уточнить это?

Означает ли это, что мы должны обеспечивать целостность на уровне приложения, а не на уровне базы данных?

Или это означает что-то совсем другое?

Ответы [ 2 ]

6 голосов
/ 13 июля 2011

У нас нет возможности узнать. Единственный человек, который знает, что он имел в виду, это автор, барон Шварц. Быстрое сканирование его слайдов показывает, что он не идиот, поэтому я почти уверен, что он не имеет в виду обеспечение целостности в приложении, а не в базе данных. Вероятно, он имеет в виду не перегружать базу данных другой обработкой, которая может быть выполнена более эффективно в других местах.

1 голос
/ 13 июля 2011

Не добавляйте бизнес-логику в БД, если вы можете сделать это на уровне приложения.

База данных должна использоваться, как следует из ее названия - для хранения данных.

Как общее правилобольшой палец, попробуйте свести всю логику к минимуму, иначе ваше приложение станет сложнее поддерживать и более подвержено ошибкам.

...