• Авторизация


Оправданно ли применять транзакции в движке форума на MySQL? 15-07-2005 15:37 к комментариям - к полной версии - понравилось!


Есть операции такого типа, которые должны быть атомарными:
insert into topic ...
insert into msg ...


А вот что пишется в мануале:
Транзакции реализуются путем ведения журнала всех изменений, вносимых в базу
данных в ходе каждой транзакции. Когда происходит откат, СУБД сверяется с журналом
и отменяет все изменения. По журналу легко можно восстановить согласованное
состояние базы данных в случае сбоя. Ведение журнала транзакций приводит к снижению
производительности, поэтому в MySQL для таблиц стандартного типа — My-ISAM
— транзакции не поддерживаются. Это одна из причин столь высокой скорости
работы программы.
Транзакции появились в MySQL сравнительно недавно. Они поддерживаются для
таблиц расширенных типов, таких как InnoDB, Berkeley DB и Gemini. Однако следует
отметить, что во многих ситуациях транзакции не нужны, так как табличных блокировок
будет более чем достаточно. В отличие от других СУБД, MySQL предоставляет
пользователям право выбора: можно работать с более медленными таблицами, поддерживающими
транзакции, или с более быстрыми таблицами, где транзакции недопустимы.
вверх^ к полной версии понравилось! в evernote
Комментарии (8):
Думаю не оправданно. Хотя, если мне не изменяет мой склероз, livejournal.com счел недавний трабл с падением серваков поводом для перехода на InnoDB, который эти транзакции как раз и поддерживает.
VictorT 15-07-2005-16:02 удалить
непобедимый, А можешь предложить какой-нить способ достижения атомарности последовательности нескольких инсертов в несколько связанных по ключу таблиц не переходя на другой тип таблиц?
VictorT 15-07-2005-16:03 удалить
В смысле, чтоб не нарушилась целостность БД в случае сбоя.
holy_diver 15-07-2005-16:10 удалить
Так ли часто это бывает в случае с форумом? Дело ведь не в том, что действительно безопасно в смысле целостности, а в том, какое решение даёт максимум производительности и безопасности при минимуме накладных расходов. Для форума транзакции слишком дороги, имхо.
Lightpower 15-07-2005-16:11 удалить
Обычно не оправданно
MySQL тем и хороша, что шуршит аки семейство шуршунчиков
Нужны трансакции - юзаю другую СУБД

LI 3.9.25
VictorT 15-07-2005-16:18 удалить
Ну, значится, наверно не буду заморачиваться.
Тогда, наверно, лучще просто наваять скриптик контроля целостности, и запускать время от времени.
Для целостности транзакции не в обяз. Достаточно чтоб работал механизм FOREIGN KEY. Только вот поддержка этого живет все в том же InnoDB, который и транзакции держит :)
Dimonuch 22-09-2005-16:03 удалить
Исходное сообщение Lightpower
Обычно не оправданно
MySQL тем и хороша, что шуршит аки семейство шуршунчиков
Нужны трансакции - юзаю другую СУБД

LI 3.9.25


эммм, логики не вижу ...
Есть случаи, когда шуршание мускула вполне радостно прирывается.
А если нужны транзакции, зачем переходить на другую СУБД? В мускуле есть ИноДБ, которые прекрасно поддерживают транзакции. Зачем что-то еще?

ЗЫ Все рассматривают вопрос транзакций только с точки зрения сохранности данных. А остальные плюсы\фишки?


Комментарии (8): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Оправданно ли применять транзакции в движке форума на MySQL? | community_coding - Сообщество программистов | Лента друзей community_coding / Полная версия Добавить в друзья Страницы: раньше»