Задавайте вопросы, мы ответим
Вы не зашли.
Есть запрос к базе на хостинге, он вызывается удаленной программой каждые 3 секунды при этом возможны обрывы связи, сам запрос выглядит так:
Отредактированно septera (05.04.2011 12:17:44)
Неактивен
Мне кажется SERIALIZABLE точно нужно под нож, а что поставить ему на замену...
На одном из сайтов нашел текст после которого вообще перестал понимать какие уровни поддерживаются в MySQL:
http://phpclub.ru/mysql/doc/innodb-transaction-model.html написал:
В версиях старше 4.0.5 вы можете использовать только REPEATABLE READ и SERIALIZABLE.
Получается что READ COMMITTED не поддерживается?
Отредактированно septera (05.04.2011 12:21:10)
Неактивен
Апну разок.
Неактивен
Я правильно понимаю, что смысл этого безобразия — прочитать данные из
таблички одним потоком, а потом удалить их? Лучше тогда это делать вообще
не через транзакции, а блокировкой таблицы:
LOCK TABLES new_rcorder WRITE;
SELECT * FROM new_rcorder;
TRUNCATE new_rcorder;
UNLOCK TABLES;
Что касается второго вопроса — поддерживаются все уровни изоляции, включая
READ COMMITTED и READ UNCOMMITTED, разумеется.
Да, не объяснил, почему блокировка таблицы лучше. Потому что когда прийдет
два потока, и один начнет читать строки снизу, а второй сверху — будет deadlock.
А в случае блокировки таблицы целиком — второй не прийдет
Неактивен
Да, кроме как безобразием по другому и не назовешь.
Сделал по другому, сначала получаем записи:
Отредактированно septera (11.04.2011 10:18:56)
Неактивен