|
MySQL.RU - Webboard
Вернуться
InnoDB и COMMIT (ЧП) 21/09/2004 - 07:05:03
Re: InnoDB и COMMIT (Marat_L) 21/09/2004 - 09:13:10
Re: InnoDB и COMMIT (ЧП) 21/09/2004 - 09:18:47
Re: InnoDB и COMMIT (Marat_L) 21/09/2004 - 09:52:34
Re: InnoDB и COMMIT (ЧП) 21/09/2004 - 09:58:38
Re: InnoDB и COMMIT (Marat_L) 21/09/2004 - 11:02:20
Re: InnoDB и COMMIT (ЧП) 21/09/2004 - 11:21:51
Re: InnoDB и COMMIT (Marat_L) 21/09/2004 - 11:35:04
Re: InnoDB и COMMIT (ЧП) 21/09/2004 - 11:53:26
Re: InnoDB и COMMIT (ЧП) 21/09/2004 - 12:28:31
Re: InnoDB и COMMIT (Dinky) 21/09/2004 - 21:33:23
Re: InnoDB и COMMIT (ЧП) 22/09/2004 - 11:58:33
> Original message text:
> From: ЧП - 21/09/2004 - 07:05:03
> Subject:InnoDB и COMMIT
> -----------------
> Скрипт на perl.
> В самом начале транзакции для верности идет SET AUTOCOMMIT=0;
> Потом семафор в таблице из одной строки, чтобы все запуски скрипта выстраивались в очередь и не могли одновременно оперировать с данными.
> update semafore set id=1 where id=1;
> Далее много селектов, апдейтов, инсертов вперемешку с кодом на perl.
> В конце скрипта COMMIT;
>
> В итоге смотрю то, что наворотила толпа юзеров, которые одновременно работают со скриптом:
> В базе с результатами порядок не тот, что должен быть.
> Порядок определяется по auto_increment.
> Бывает такое, что в одну секунду идет запись первого юзера, предположим с номером 1, потом второго с номером 2, потом снова первого с номером 3, хотя 1 и 3 делаются в одной транзакции.
>
> Что я делаю не так?
>
From: ЧП - 21/09/2004 - 11:21:51
Subject:InnoDB и COMMIT
-----------------
1) type= InnoDB
2) в логе slow.log нет запросов, которые выходят за тайм, ну по крайней мере в этот момент, когда произошел глюк не было. :-)
3) Сделал ROLLBACK в конце скрипта вместо COMMIT, записей не происходит, значит все-таки транзакции есть.
4) Придется включать лог, но ошибка бывает редко и найти будет сложно. :-(
Скажи, пожалуйста, сама схема такой работы живучая? Именно для того, чтобы пока скрипт для одного юзера не сделал все, второй не может ничего сделать, потому что ему необходимы данные, которые появились в параллельном процессе.
Или есть какой-то более красивое решение, которое будет быстрым и надежным?
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
17376
|
|