Когда нужно использовать транзакцию и для чего она нужна

Зачем нужны транзакции. Свойства транзакций

Базы данных, на которых строятся информационные системы, должны обеспечить одновременный доступ к данным для многих, иногда сотен и тысяч, пользователей. Оказывается, при параллельной работе пользователей результаты вычислений могут зависеть от временных соотношений между действиями пользователей, от того, в какое время и в какой последовательности они выполняются. Как избежать этой зависимости? Как организовать чтение данных одним пользователем и одновременно их изменение другим? Как добиться, чтобы деньги, снятые с одного счета, и, из-за сбоя системы, не зачисленные на другой счет, не могли пропасть бесследно? Как восстановить данные при откатах и сбоях?

Все эти проблемы решаются за счет использования механизма транзакций, который должен работать в базах с любыми моделями данных.

Информационные системы, предназначенные для единственного пользователя, в настоящее время практического интереса не представляют. Но даже они нуждаются в транзакциях. Всегда существует наборы действий, такие что невыполнение некоторых из них приводит базу в противоречивое состояние. Кроме того, один пользователь может запустить несколько потоков вычислений, обращающихся, может быть, к одним данным. И тут ему потребуется механизм, обеспечивающий независимость работы этих потоков.

· Сохранение целостности данных.

· Параллельную работу пользователей с базой данных.

· Восстановление данных при откатах и сбоях.

Пусть при выполнении двух последовательно выполняющихся действий после успешного выполнения первого из них возник сбой

В приведенном примере это означает, что сумма, снятая с первого счета не попала на второй счет. Хуже того, сам факт исчезновения денег никак не зафиксирован. Если вас этот неприятный факт не расстроил, и вы считаете, что можно повторить все с начала, то тут сказывается одна нехорошая привычка, вырабатываемая ориентированностью наших студентов, фактически, на научные вычисления. Скажем, складывал я две матрицы, а они у меня не сложились. Ну, бог с ними — я их сложу еще раз. Но, если вы написали систему, которая отправила миллиард долларов, и он никуда не пришел, то, скорее всего, усовершенствовать ее будет уже другой человек, а вы будете искать новую работу. Вот, собственно, в этом разница в отношении к надежности вычислений в науке и бизнесе. Вообще говоря, бизнес-приложения должны работать всегда, независимо от того, исправен ли компьютер или нет, заболели ли вы или еще что-то случилось, ночь сейчас или день. Ведь есть организации, работающие круглые сутки. Хорошим тоном считается обеспечивать работоспособность в самом тяжелом режиме, который принято называть «24/7» (двадцать четыре на семь). Это очень тяжелый режим, и без специальных мер он сам по себе не обеспечивается. Представьте, что в вашем домашнем компьютере нужно поменять или добавить жесткий диск. Как это сделать без останова системы?

Рис. 6.2.Возможные ошибки

Для рассмотрения параллельной работы двух пользователей вспомним, что «сальдо» —это остаток на счете. Посчитать сальдо по группе счетов — это, попросту говоря, сложить их остатки. Обычный арифметический цикл, который известен всем школьникам. На рисунке 6.2 слева показана работа такого цикла. Сначала сальдо С по группе счетов равно 0, потом прибавляем к нему остаток первого счета, второго счета и т.д., счета тысячного. Как учили в школе? Написали цикл, проверили его на примере. Дальше работает всегда правильно. Но у нас то пользователь не один. Транзакция изображенная слева выполняет циклическое суммирование. Но после того, как счет 1 уже учтен, и до того, как учтен счет 1000, вторая транзакция, изображенная справа, снимает 200 руб. со счета 1, и зачисляет их (то есть прибавляет 200 руб.) на счет 1000. Теперь в подсчете сальдо по группе счетов появится ошибка в 200р. Почему? Потому что счет 1 мы обрабатывали в неизмененном состоянии, а счет 1000 в измененном. А что будет, если во времени вторая транзакция будет сдвигаться? Ну, очевидно, если она будет выполнена до первой (левой на рисунке) транзакции или после нее, то ничего страшного не случится, все будет посчитано правильно. А если транзакции начнут выполняться на одном промежутке времени то, с какого-то момента появится ошибка. Обратите внимание, довольно странная, неожиданная для начинающих ситуация — арифметический цикл, оказывается, может считать данные неправильно, если одновременно идет некоторый другой процесс, имеющий доступ к тем же данным. Транзактный механизм должен подобные казусы исключить.

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

Вернемся к рассмотренной ранее операции — переводу денег с одного счета на другой. Эта операция включает две атомарные (элементарные, неделимые) операции:

· снятие суммы с одного счета,

· зачисление суммы на другой счет.

Если СУБД будет выполнять (или не выполнять) эти две операции только вместе, то база будет всегда находиться в согласованном состоянии и не будут возникать ситуации, при которых суммы, снятые с одного счета, ни на какой другой счет не поступают.

Источник

Транзакции «1С». Что это такое, и зачем они нужны?

Известно ли вам, за что отвечают транзакции «1С»? В одной из наших статей мы уже рассказывали о таких понятиях, как блокировки и взаимоблокировки. Важно отметить, что эти явления возможны именно благодаря транзакциям «1С».

Что такое транзакция в «1С»?

Транзакция – это последовательность действий, переводящая базу данных из одного целостного состояния в другое целостное состояние. Примером транзакции может служить перевод денежных средств с одной банковской карты на другую.

Транзакции могут быть выполнены до конца или не выполнены вообще. Варианта «наполовину выполненная транзакция» не существует. В СУБД транзакции фиксируются методом COMMIT.

Какими свойствами должна обладать транзакция?

ACID (Atomicity, Consistency, Isolation, Durability) – самый распространенный набор требований к транзакциям «1С».

Обязательные свойства любой транзакции:

Как работать с транзакциями «1С»?

Создавать транзакции можно двумя способами:

Вложенные транзакции не поддерживаются в «1С». Если вы несколько раз открываете транзакцию, она «сливается» в одну. При фиксации или отмене эти действия производятся со всеми транзакциями, активируемыми ранее.

При низкой производительности «1С» правильно созданные транзакции помогут работать быстрее. Когда транзакция проводится без ошибок, то в системе не возникает блокировок и взаимоблокировок. Вы не увидите сообщений об ошибке, и отмены проведения документа не произойдет.

Если у вас возникли вопросы по созданию транзакций и оптимизации «1С», обратитесь за консультацией к специалистам «ГЭНДАЛЬФ».

Источник

Что такое транзакция

Транзакция — это набор операций по работе с базой данных (БД), объединенных в одну атомарную пачку.

Читайте также:  изоспан а для кровли можно использовать

Транзакционные базы данных (базы, работающие через транзакции) выполняют требования ACID, которые обеспечивают безопасность данных. В том числе финансовых данных =) Поэтому разработчики их и выбирают.

Я расскажу о том, что такое транзакция. Как ее открыть, и как закрыть. И почему это важно — закрывать транзакцию. И тогда при написании запросов к базе у вас будет осознанное понимание, что происходит там, под капотом, и зачем же нужен этот обязательный коммит после апдейта.

Содержание

Что такое транзакция

Транзакция — это архив для запросов к базе. Он защищает ваши данные благодаря принципу «всё, или ничего».

Представьте, что вы решили послать другу 10 файликов в мессенджере. Какие есть варианты:

Кинуть каждый файлик отдельно.

Сложить их в архив и отправить архив.

Вроде бы разницы особой нет. Но что, если что-то пойдет не так? Соединение оборвется на середине, сервер уйдет в ребут или просто выдаст ошибку.

В первом случае ваш друг получит 9 файлов, но не получит один.

Во втором не получит ничего. Нет промежуточных состояний. Или получил всё, или не получил ничего. Но зато если произошла ошибка, вы снова перешлете сообщение. И друг получит все файлики разом, не придется проверять «не потерялся ли кто».

Казалось бы, ну недополучил файлик, что с того? А если это критично? Если это важные файлики? Например, для бухгалтерии. Потерял один файлик? Значит, допустил ошибку в отчете для налоговой. Значит, огребешь штраф и большие проблемы! Нет, спасибо, лучше файлы не терять!

И получается, что тебе надо уточнять у отправителя:

— Ты мне сколько файлов посылал?

— Да? У меня только 9. Давай искать, какой продолбался.

И сидите, сравниваете по названиям. А если файликов 100 и потеряно 2 штуки? А названия у них вовсе не «Отчет 1», «Отчет 2» и так далее, а «hfdslafebx63542437457822nfhgeopjgrev0000444666589.xml» и подобные. Уж лучше использовать архив! Тогда ты или точно всё получил, или не получил ничего и делаешь повторную попытку отправки.

Так вот! Транзакция — это тот же архив для запросов. Принцип «всё, или ничего». Или выполнены все запросы, которые разработчик упаковал в одну транзакцию, или ни один.

Допустим, вы переводите все деньги с одной карточки на другую. Выглядит это «внутри» системы как несколько операций:

delete from счет1 where счет = счет 1

insert into счет2 values (‘сумма’)

Принцип «всё или ничего» тут очень помогает. Было бы обидно, если бы деньги со счета1 списались, но на счет2 не поступили. Потому что соединение оборвалось или вы в номере счета опечатались и система выдала ошибку.

Но благодаря объединению запросов в транзакцию при возникновении ошибки зачисления мы откатываем и операцию списания. Деньги снова вернулись на счет 1!

Если говорить по-научному, то транзакция — упорядоченное множество операций, переводящих базу данных из одного согласованного состояния в другое. Согласованное состояние — это состояние, которое подходит под бизнес-логику системы. То есть у нас не остается отрицательный баланс после перевода денег, номер счета не «зависает в воздухе», не привязанный к человеку, и тому подобное.

Как отправить транзакцию

Чтобы обратиться к базе данных, сначала надо открыть соединение с ней. Это называется коннект (от англ. connection, соединение). Коннект — это просто труба, по которой мы посылаем запросы.

Чтобы сгруппировать запросы в одну атомарную пачку, используем транзакцию. Транзакцию надо:

Выполнить все операции внутри.

Как только мы закрыли транзакцию, труба освободилась. И ее можно переиспользовать, отправив следующую транзакцию.

Можно, конечно, каждый раз закрывать соединение с БД. И на каждое действие открывать новое. Но эффективнее переиспользовать текущие. Потому что создание нового коннекта — тяжелая операция, долгая.

При настройке приложения администратор указывает, сколько максимально открытых соединений с базой может быть в один момент времени. Это называется пул соединений — количество свободных труб.

Разработчик берет соединение из пула и отправляет по нему транзакцию. Как только транзакция закрывается (неважно, успешно она прошла или откатилась), соединение возвращается в пул, и его может использовать следующая бизнес-операция.

Как открыть транзакцию

Зависит от базы данных. В Oracle транзакция открывается сама, по факту первой изменяющей операции. А в MySql надо явно писать «start transaction».

Как закрыть транзакцию

Тут есть 2 варианта:

COMMIT — подтверждаем все внесенные изменения;

ROLLBACK — откатываем их;

И вся фишка транзакционной базы в том, что база сначала применяет запрос «виртуально», реально ничего в базе не изменив. Ты можешь посмотреть, как запрос изменит базу, ничего при этом не сохраняя.

Например, я пишу запрос:

Запрос выполнен успешно, хорошо! Теперь, если я сделаю select из этой таблицы, прям тут же, под своим запросом — он находит Иванова! Я могу увидеть результат своего запроса.

Но! Если открыть графический интерфейс программы, никакого Иванова мы там не найдем. И даже если мы откроем новую вкладку в sql developer (или в другой программе, через которую вы подключаетесь к базе) и повторим там свой select — Иванова не будет.

А все потому, что я не сделала коммит, не применила изменения:

Я могу добавить кучу данных. Удалить полтаблицы. Изменить миллион строк. Но если я закрою вкладку sql developer, не сделав коммит, все эти изменения потеряются.

Когда я впервые столкнулась с базой на работе, я часто допускала такую ошибку: подправлю данные «на лету» для проведения теста, а в системе ничего не меняется! Почему? Потому что коммит сделать забыла.

На самом деле это удобно. Ведь если ты выполняешь сложную операцию, можно посмотреть на результат. Например, удаляем тестовые данные. Написали кучу условий из серии:

И фамилия = «Тестовый»

Удалили. Делаем select count — посмотреть количество записей в таблице. А там вместо миллиона строк осталось 100 тысяч! Если база реальная, то это очень подозрительно. Врядли там было СТОЛЬКО тестовых записей.

Проверяем свой запрос, а мы там где-то ошиблись! Вместо «И» написали «ИЛИ», или как-то еще. Упс. Хорошо еще изменения применить не успели. Вместо коммита делаем rollback.

Тут может возникнуть вопрос — а зачем вообще нужен ROLLBACK? Ведь без коммита ничего не сохранится. Можно просто не делать его, и всё. Но тогда транзакция будет висеть в непонятном статусе. Потому что ее просто так никто кроме тебя не откатит.

Читайте также:  день дракона тебе конец актеры

Или другой вариант. Нафигачили изменений:

Поменять код города с 495 на 499;

Но видим, что операцию надо отменять. Проверочный select заметил, что база стала неконсистентной. А мы решили «Ай, да ладно, коммит то не сделали? Значит, оно и не сохранится». И вернули соединение в пул.

Следующая операция бизнес-логики берет это самое соединение и продолжает в нем работать. А потом делает коммит. Этот коммит относился к тем 3 операциям, что были внутри текущей транзакции. Но мы закоммитили еще и 10 других — тех, что в прошлый раз откатить поленились. Тех, которые делают базу неконсистентной.

Так что лучше сразу сделайте откат. Здоровей система будет!

Итого

Транзакция — набор операций по работе с базой данных, объединенных в одну атомарную пачку.

Одной операции всегда соответствует одна транзакция, но в рамках одной транзакции можно совершить несколько операций (например, несколько разных insert можно сделать, или изменить и удалить данные. ).

Чтобы отправить транзакцию к базе, нам нужно создать соединение с ней. Или переиспользовать уже существующее. Соединение называют также коннект (англ connection) — это просто труба, по которой отправляются запросы. У базы есть пул соединений — место, откуда можно взять любое и использовать, они там все свободные.

В некоторых системах транзакцию нужно открыть, в других она открывается сама. А вот закрыть ее нужно самостоятельно. Варианты:

COMMIT — подтверждаем все внесенные изменения;

ROLLBACK — откатываем их;

Делая комит, мы заканчиваем одну бизнес-операцию, и возвращаем коннект в пул без открытой транзакции. То есть просто освобождаем трубу для других. Следующая бизнес-операция берет эту трубу и фигачит в нее свои операции. Поэтому важно сделать rollback, если изменения сохранять не надо. Не откатите и вернете соединение в пул? Его возьмет кто-то другой и сделает коммит. Своих изменений, и ваших, неоткаченных.

Не путайте соединение с базой (коннект) и саму транзакцию. Коннект — это просто труба, операции (update, delete…) мы посылаем по трубе, старт транзакции и commit /rollback — это группировка операций в одну атомарную пачку.

См также:

Блокировки транзакций — что может пойти не так при одновременном редактировании

Источник

Транзакции в 1С 8.3(8.2) и СУБД

В рамках подготовки к сертификации 1С «Эксперт» в преддверии двух очень важных и глобальных тем — блокировок и взаимоблокировок хотелось бы разобрать то, без чего невозможны вышеназванные понятия, — транзакция СУБД.

Что такое транзакция

Транзакция — логически связанная, неделимая последовательность действий. Транзакция может быть либо выполнена целиком, либо вообще не выполнена. Для фиксации транзакции в СУБД используется метод COMMIT.

Типичный пример транзакции — перевод денежных средств с одного счета на другой:

Как мы видим, если транзакция выполнена не полностью, то она не имеет смысла.

Ключевые требования (ACID) к транзакционной СУБД

Одним из наиболее распространённых наборов требований к транзакциям и транзакционным СУБД является набор ACID (Atomicity, Consistency, Isolation, Durability). Это те свойства, которыми должна обладать любая транзакция:

Транзакции в 1С

Транзакции в 1С 8.3 и 8.2 создаются как автоматически, так и описываются разработчиками.

С помощью метода ТранзакцияАктивна() можно узнать, активна ли транзакция.

Пример автоматической транзакции — обработка проведения документа, запись элемента справочника в базу данных, запись набора записей регистра сведений и т.д.

Разработчик может и сам создать транзакцию. Для выполнения действий в транзакции необходимо в код активировать её:

По окончании транзакции её необходимо зафиксировать:

Если Вы хотите отменить действия транзакции, необходимо выполнить метод:

1С не поддерживает вложенных транзакций. Поэтому, если Вы несколько раз открываете транзакцию, она «сливается» в одну. Если же Вы фиксируете или отменяете её, то это действие производится со всеми транзакциями, активируемыми ранее.

Если я не понятно расписал, рекомендую видеолекцию от коллег:

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

Почему транзакции так нужны СУБД MySQL

Дата публикации: 2018-12-04

От автора: благодаря тому, что существуют транзакции MySQL, мы с вами можем пользоваться такими инфраструктурными благами, как бронирование номеров отелей, интернет-банкинг и дистанционный аудит. Но, сама природа обмена данными в структурных таблицах MySQL не так проста, как может показаться. За быстродействие и стабильность, веб-разработчик платит часами труда и концентрации. Сегодня мы посвятим время тому, чтобы изучить основы транзакционного механизма и его подводных камней.

Под внимательным рассмотрением

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

Итак, представим, что у нас есть конкретный интернет-магазин, который активно продает свои товары по всему миру, оптом и в розницу. База данных покупателей составляет сотни тысяч человек, а одномоментно на страницах листают товар и нажимают «buy» не менее тысячи юзеров. Только для одной страницы с продуктами магазина необходимо проводить десятки запросов и столько же ответов. Даже если веб-приложение работает по самым простым алгоритмам, как скажем Aliexpress, оно собирает информацию с товарами уже подготовленными к покупке и мониторит активность на страницах, предлагая товары с подобными тегами.

На примере одного пользователя это выглядит сложным механизмом. Когда речь идет о целой аудитории — все еще сложнее. Сразу несколько потенциальных покупателей могут выполнять подобные действия: это явление принято называть параллелизмом выполняемых операций. Если не контролировать этот процесс, информация для пользователей существенно исказится. Получается, что от двух и более пользователей идут подобные потоки данных.

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Взирая на реляционную природу баз данных, результат такой операции может быть совершенно непредсказуем. Система не сможет отобразить ответ по правильному адресу, все перемешивается. И, чтобы убрать подобные противоречия, были изобретены транзакции.

Это своеобразная опосредованность инструкций на языке «сиквел», которая выполняется системой от начала до конца, либо не выполняется вовсе. Потоки, которые исходят к базе данных одновременно, изолированы друг от друга, а значит, их доступ к изменению данных тоже ограничен. А когда операция заканчивается, машина, на которой размещена база данных, выполняет их последовательным образом, а не одновременно, как это было бы в варианте без транзакции.

Читайте также:  Как сделать скидку на вайлдберриз партнеры

Разберем простой пример операций. Боб и Алиса переводят деньги друг другу, пусть это будет две тысячи долларов. В дотранзакционный период, для такого сценария необходимо было провести две независимых операции: снять деньги со счета одного абонента и перевести другому. На языке запросов это выглядит так:

Но, мы уже знаем, что базы данных иногда останавливаются, иногда тормозят, а иногда подвергаются атакам и полностью падают. Даже незначительная ошибка может привести к тому, что одна операция выполнится, а вторая — нет. Могут быть не списаны деньги со счета, или та же сумма будет потрачена дважды, либо две тысячи будут списаны, а на счет Боба не придет ни гроша.

Вот зачем нужны транзакции. Они призваны не допустить такой провальный сценарий. А потому, вся операция выполняется, как одно целое. Если произойдет ошибка на каком-то из этапов, то деньги не спишут со счетов, и они не придут на другой. Это на заметку тем, кто переживает, что сумма долго не приходит на карту. Все придет, ведь в основе финансовых операций лежат транзакции MySQL или другой системы управления базами данных.

Детально о параллелизме

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

Представьте, что существует двое коллег, которые отгружают товар и вносят изменения в базу данных, каждый из своего устройства. Каждый из сейлс-агентов, продает и закупает определенное количество продукции, и если бы не было механизма регулирования этого процесса, в базах данных никогда не находилась бы верная информация.

Чтобы облегчить параллельные запросы была установлена система блокировок. Есть центр, который совершает контроль над потоками и блокирует строку, если это необходимо. К примеру, пока один продавец обращается к элементу базы данных, она заблокирована. Как только освободится — другие могут обращаться и изменять ее.

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Откат — отмена

Одной из самых важных характеристик, которые делают транзакции используемыми, является возможность ее отмены. Несмотря на то, что некоторые современные разработчики считают возможность отмены уязвимостью и предпочитают блокчейн централизованному реестру. Вторая — это фиксация транзакции. Их принято называть роллбэеками и комитами соответственно. Вообще, все транзакции должны иметь эти четыре свойства:

атомарность. Об этом уже говорили в ходе рассмотрения. Это значит, что все элементы операции должны выполняться одним действием. Если не выполнено хотя бы одно из них, все остальные тоже не применятся. Этот принцип базы данных защищает от двойного использования средств и других двойных изменений;

согласованность. Достигается путем сериализации;

изолированность. Этот параметр обеспечивает стабильную работу при параллельных запросах;

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

Если не соблюдается хоть один их параметров, такая транзакция не должна проводиться в принципе. Как мы и говорили, одновременность потоков — лишь видимость. На самом деле, транзакции для того и нужны, чтобы обеспечить видимую синхронность. В реальности же, действия происходят последовательно, друг за другом.

В самом начале базы работали абсолютно без транзакций. InnoDB и сегодня она является одним из основных инструментов разработчика. Но, и до ее изобретения, существовали сервисы, подобные современным. Все работало благодаря тому, что содержимое блокировалось на уровне таблицы. И даже сегодня переход на новый движок не всегда оправдан. Для большинства проектов достаточно того функционала, который представляет MyISAM. Об основных движках с поддержкой транзакций — ниже.

Berkley для транзакций

Еще один удачный продукт, который успела приобрести компания Oracle. Это СУБД, которая, в отличии от многих, не является реляционной, а поддерживается за счет ассоциативного массива. Умеет работать с большими массивами, является почти абсолютно кроссплатформенной, что применимо даже для осей реального времени.

Имеет особенную архитектуру. К примеру, полностью лишена сетевого доступа, функции которого реализованы через API внутри процессора. Для программного обеспечения, «сиквел» является всего лишь одним из интерфейсов. СУБД, как и MySQL, поддерживает такие фишки, как транзакции, репликацию и бэкапы. Сравнить даже с героем нашей статьи — MySQL. Также, поставляется с большинством дистрибутивов Linux.

InnoDB — массовый старт транзакций

На ряду с MyISAM, это одна из систем, которая поддерживается системой управления базами данных MySQL. Современные разработчики советуют использовать этот движок для 9 из 10 случаев, но, и здесь есть свои препятствия.

Поддержка Inno началась недавно, если сравнивать с ISAM или Berkley. Только в 2001 MySQL начала работать с этим типом таблиц. Но, уже со следующей версии началась полномасштабное внедрение Inno в набор инструментов СУБД. Как и MySQL, Berkley и многие другие, разрабатывается и поддерживается компанией Oracle.

Этот тип таблиц считается более безопасным, чем любой другой транзакционный движок, имеет гибкую систему настроек. Оснащен полнотекстовым поиском: до недавнего времени отсутствовал, что заставляло вебмастеров делать выбор в пользу MyISAM. Тем не менее, быстродействие таблиц ISAM до сих пор находят себе поклонников.

Итог: транзакции — важнейший элемент в банковской системе, интернет-магазинах и многих других e-commerce решениях. Благодаря высокому уровню безопасности, который они предлагают, мы имеем большинство современных технологий. Это относительно простая последовательность инструкций, но до сих пор не придумали ничего лучше. Транзакции на основе блокчейна могут стать новым витком в развитии этой индустрии. Однако, пока распределенный реестр еще медленный и несовершенный, а значит, MySQL-транзакции еще долго будут в тренде.

На этом мы заканчиваем! Подробные мануалы ищите в документации и в свободном доступе. Обсуждаемость предмета очень высока в кругах веб-разработчиков.

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Источник

Развивающий портал