Я читаю очень подробные учебные руководства о том, как использовать транзакции с типами БД и механизмами базы данных, но я не нашел руководство, которое учит меня, когда и почему я должен использовать их.
Я знаю, что транзакции обычно используются для банковского дела, поэтому когда мы работаем с денежными данными, но я могу предположить, что они используются многими другими способами.
Сегодня я работаю на странице с различным INSERT
операторы для реляционной базы данных, и я хотел знать, является ли это одним из случаев, когда я должен использовать их.
Я получаю впечатление, что я не знаю случаи, когда данные могут быть частично потеряны (кроме ошибок кодера), таким образом, я всегда волнуюсь по поводу того, когда я должен использовать их.
Кто-то может объяснить или дать некоторую ссылку с этими фундаментальными правилами?
Я использую MySQL 5.0.8
. Если я использую InnoDB
для всех таблиц та потребность транзакции? Если да, InnoDB
медленнее, чем общее MyISAM
но я не должен волноваться об этом?
спасибо
В основном в любое время у вас есть единица работы, которая либо чувствительна к внешним изменениям, либо , нуждается в умении отката каждого изменения , если возникает ошибка или какая-то другая причина.
Посмотрите здесь для некоторых отличных ответов и их причин использования их .
Транзакции должны использоваться, когда есть возможность того, что в середине вашей задачи есть возможность, чтобы либо пройти отказаться или кого-либо чтение или запись в середине вашей задачи, может привести к повреждению данных. К ним относятся, но не ограничиваются ограниченными вопросами:
Вы используете транзакции, когда у вас есть группа действий Это должно быть атомарным (все преуспеть, либо не преуспеть), обертывающие эти действия в транзакции, позволяют откатывать действия, которые уже успели, когда вы столкнулись с ошибкой. Он также гарантирует, что данные, с которыми вы работаете, является последовательной, поскольку замки будут проходить до завершения транзакции.
В дополнение к тому, что написал Ника Craver, вы бы хотели использовать транзакцию, когда у вас есть ряд пишетов, которые необходимо выполнить атомным образом; То есть они все должны преуспеть или никто не должен преуспеть.