Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Anton Voronin                        2:5010/148.16  12 Oct 2001  02:29:43
 To : All
 Subject : MySQL: transactions vs locks
 -------------------------------------------------------------------------------- 
 
 
 Как я выяснил опытным путем, когда в Mysql активна транзакция, то не
 работают блокировки (LOCK молчаливо проходит, а на UNLOCK сервер падает
 по SIGSEGV со словами "...you probably hit a bug..."). И наоборот, если
 хоть одна таблица в базе блокирована, то не работают транзакции (AutoCommit
 не устанавливается в 0.
 
 Значит нужно использовать либо то, либо другое. Hапример, когда запросов на
 изменение (UPDATE/INSERT/etc...) не больше одного, а остальные - SELECT'ы,
 то можно обойтись только блокировками, без транзакций, так как целостности
 базы ничего не угрожает. А если все запросы - на изменение данных, то
 можно обойтиь без блокировок, только транзакциями (потому как вся
 последовательность выполняется за одну атомарную операцию и никто другой
 не сможет внести изменения между запросами этой транзакции).
 
 Hо что делать, если и update'ов/insert'ов больше нуля, а select'ов
 больше одного? Транзакция здесь нужна обязательно, но если не делать
 блокировок, то:
 1. В случае когда сначала делается select, а потом на основе выбранных
 им данных делаются обновления, существует ли гарантия, что между селектом
 и апдейтом не внесено изменений другим пользователем в базу таким образом,
 что данные, на которых основывается дальнайший update, окажутся
 неактуальными? Ведь несмотря на транзакцию, select все равно делается
 сразу, а не во время commit'а.
 2. В случае когда сначала делается серия обновлений, а потом select, который
 должен отразить эти изменения, не будет ли он читать данные из исходной
 таблицы, в которой изменения еще не отражены, поскольку коммита еще не было?
 
 Заранее спасибо.
         Anton
 
 --- QDed beta v1.3/FreeBSD
  * Origin: После сытного обеда можно слезть с велосипеда (2:5010/148.16)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 MySQL: transactions vs locks   Anton Voronin   12 Oct 2001 02:29:43 
 MySQL: transactions vs locks   Andrew E. Filonov   12 Oct 2001 09:28:58 
 MySQL: transactions vs locks   Max Khon   12 Oct 2001 09:21:44 
 MySQL: transactions vs locks   Anton Voronin   12 Oct 2001 13:59:28 
 MySQL: transactions vs locks   Max Khon   14 Oct 2001 12:38:02 
 Re: MySQL: transactions vs locks   Igor Sysoev   15 Oct 2001 15:56:51 
Архивное /ru.unix.bsd/39363bc60477.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional