![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2001
Адрес: Рязань
Сообщений: 29
|
А поддерживает ли MySQL транзакии? И как из под PHP ими воспользоваться?
__________________
Пейте пиво! |
|
|||||
|
У меня как то вставал такой вопрос!!!
MySQL вроде бы не поддерживает транзакций... но как сказал один мой знакомый, на вопрос: А не рухнет ли у меня база, от большого числа посетителей??? Если у тебя на сайте будет столько посещений что мускл рухнет... то ты будешь очень богатым человеком и у тебя будут другие проблемы ![]() |
|
|||||
|
алкаголик и придурок
Регистрация: May 2001
Адрес: город-герой лондон
Сообщений: 2,103
|
what is "транзакции"?
|
|
|||||
|
Регистрация: Oct 2001
Адрес: Рязань
Сообщений: 29
|
Парни, но вы даете. Они не знают, что такое транзакции, как же они живут то после этого
) Итак все во внимание: "Транзакцией называется совокупность операций с базой данных, которая либо выполняется вся полность, либо не выполняется совсем" ) А транзакции MySQL поддерживает...
__________________
Пейте пиво! |
|
|||||
|
Нет в MySQL транзакций, и вообще как это совокупность операций котороя - цитирую - не выполняеться совсем, все операции встают в очередь, и в конце концов выполняються...
Вот вам пример который я прочитал в каком то журнале, который подчеркиает плохую реализацию транзакции: Покупаешь интернет карту и с двух компов одновременно активизируешь ее, в базу поступают данные активизации и следовательно данную карту надо удалить из базы, так вот вопрос успеет она удалить до того момента как второй комп прошлет запрос на активизацию... оказыветься фокус проходил у какого то провайдера |
|
|||||
|
Странно... или я слишком долго не читал новостей или последний ответ неправильный, или mysql начал поддерживать транзакции (что было бы реально неплохо, должен заметить!!!)
Однако, насколько я знаю (и уверен в этом на 100%!) mysql не поддерживает транзакции! Равно как и тирггеры и хранимые процедуры! Зато взамен получили быстрый, многопоточный сервер БД. Если уж действительно необходимы транзакции - некоторые их фичи (не все!) можно и на mysql симулировать. rtfm.
__________________
<HB> |
|
|||||
|
А я об чем...
|
|
|||||
|
subj:
в mysql команды sql выполняются одна за одной и если команда отправлена серверу, то её нельзя уже отменить. а вот, например, в oracle (или sybase, да и не только в них) можно задать целый набор команд, но пока не будет отдана команда commit нифига не будет, т.е. все sql команды отсылаются серверу БД только после команды commit.
__________________
<HB> |
|
|||||
|
2 evgenz:
извини, тут типа пока ответ писал, ты свой вариант ответа отослал, вот и получилась накладка (вот и пример транзакции, а точнее её отсутствия) %))) мои ответы были направлены для BigIlya %)
__________________
<HB> |
|
|||||
|
Регистрация: Oct 2001
Адрес: Рязань
Сообщений: 29
|
Откроем пункт 7.31 документации по MySQL...Цитирую:
7.31 BEGIN/COMMIT/ROLLBACK Syntax By default, MySQL runs in autocommit mode. This means that as soon as you execute an update, MySQL will store the update on disk. If you are using BDB tables, you can put MySQL into non-autocommit mode with the following command: SET AUTOCOMMIT=0 After this you must use COMMIT to store your changes to disk or ROLLBACK if you want to ignore the changes you have made since the beginning of your transaction. If you want to switch from AUTOCOMMIT mode for one series of statements, you can use the BEGIN or BEGIN WORK statement: BEGIN; SELECT @A:=SUM(salary) FROM table1 WHERE type=1; UPDATE table2 SET summmary=@A WHERE type=1; COMMIT; Note that if you are using non-transaction-safe tables, the changes will be stored at once, independent of the status of the autocommit mode. К чему бы это они написали? Мне здесь только не понятно, что такое BDB таблицы? Если я не прав, то заранее извиняюсь. А на счет очереди...так BRUDALIS абсолютно прав!
__________________
Пейте пиво! |
![]() |
Часовой пояс GMT +4, время: 04:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|