Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




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, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
17376



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |