![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
passer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 14.4.2007 Репутация: нет Всего: нет |
у меня есть проблема. два не связанный процесса имеюший отдельный коннекшины к серверу mysql. у обоих включено autocommit. каждый процесс запускает по одному update(возможно одновременно). запросы описаны ниже. я думал поле ch_status(и условие now()-ch_status>300) должно было обеспечить чтобы эти два запроса могли проапдейтить одну и ту же строку только если запустить один запрос на 3 минуты позже второго. но в логах отчетливо увидел как с периодом 10 секунд эти запросы обновили одну и ту же строку. как это возможно?
таблицы myisam. возможно ли что один запрос не увидел изменения другого?это ведь не правильно? вот запросы update table set status=1,ch_status=now() where ins_time<now() and now()-ch_status>300 and status!=1 order by ch_status limit 1 update table set status=2,ch_status=now() where ins_time<now() and now()-ch_status>300 and status!=1 order by ch_status limit 1 зарание спасибо за ответы. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
А какой смысл вообще кивать на autocommit на MyISAM, если она non-transactional? autocommit просто игнорируется. А rollback-попытка выдаст warning, ибо нету.
в каком порядке? каково было значение использованных в запросах полей записи до и после? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 33 Всего: 161 |
я правильно понимаю что now в этом случае возвращает число в формате YYYYDDMMHHmmSS? Если да, подумай что происходит когда перескакиваем через час. Например 10:59:59-11:00:00 110000-105959=4041, а прошла всего секунда Это сообщение отредактировал(а) Zloxa - 19.10.2010, 17:08 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Угу... причём это время начала обработки запроса - вне зависимости от того, сколько он будет выполняться. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
passer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 14.4.2007 Репутация: нет Всего: нет |
блин. вы правы.
я подумал об этом но я подумал про проскакивание через минуту и решил что за секунду пройдет 40 секунд. это причину не обьяснило.. спасибо огромное за помшь. буду юзать timediff(или как его там звали) |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |