Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 06:39 05.05.24 
Клубове/ Компютри и Интернет / Бази данни Пълен преглед*
Информация за клуба
Тема Re: ами ... [re: wqw]
Автор salle (един такъв)
Публикувано18.12.08 03:18  



"едва ли не със SELECT ... FOR UPDATE ще постигне single row lock върху първия ред подходящ за резервация. "

При ENGINE=InnoDB

SELECT ... WHERE ... LIMIT 1 FOR UPDATE;

ще постави row lock върху първия намерен ред отговарящ на WHERE клаузата.

"1. Нека заявката изглежда така SELECT * FROM MyTable WHERE IsReserved = 0 FOR UPDATE
2. Нека в MyTable имаме няколко реда с IsReserved = 1
3. В зависимост от коректността на статистиките на db engine-а + ефективността на алгоритмите за lock escalation, съм готов да се обзаложа че в 95%+ от случаите заявката ще "осъмне" с tab lock. "



SELECT * FROM MyTable WHERE IsReserved = 0 FOR UPDATE;

ще осъмне с eXclusive row lock върху всички редове с
IsReserved = 0 в 100% от случаите дори и когато това са всички редове в таблицата.

SELECT * FROM MyTable WHERE IsReserved = 0 LIMIT 1 FOR UPDATE;

ще осъмне с X row lock върху един ред (първия намерен) в 100% от случаите.

Шансът при SELECT ... FOR UPDATE InnoDB да постави Tabel lock е нулев. Мога и да обясня защо ако трябва.

"4. Ако има индекс по IsReserved (нещо безумно като изпълнение, но "решение" което с голяма вероятност wiz би придложил гледайки предиката в WHERE клаузата на заявката) 100% от случаите ще имаме index lock на целия индекс."

Не знам какво точно имаш предвид под index lock в случая. InnoDB използва clustered index където държи Primary Key и точно това е което заключва. Няма вариант да заключи целия индекс обаче освен разбира се когато трябва да заключи всички елементи.

"5. В зависимост от нивото на изолация на транзакциите db engine-а може да се опита да предотврати "фантоми" и веднага ще сложи tab lock "

InnoDB предотвратява фантомите в почти всички случаи дори на ниво REPEATABLE READ, но това всъщност няма значение в случая.

"Питам се, след като на MyISAM му липсва A-то в ACID-а, може ли две сесии да UPDATE-нат един и същ ред едновременно и в резултат това: "

Не.

Въпросът кога точно на MyISAM му липсва A-то e с леко повишена трудност :) Не много, но да речем 6 по десетобална скала ;)

UPDATE x SET ......,
processed = UUID() ...
WHERE processed IS NULL LIMIT 1;

върши идеална работа при MyISAM точно защото при MyISAM няма транзакции и поради това гарантира невъзможност две сесии да променят един и същ ред.

MyISAM поддържа заключване само на ниво таблица.

Редактирано от salle на 18.12.08 03:20.



Цялата тема
ТемаАвторПубликувано
* Транзакции или скрипт? bira_more   14.12.08 00:03
. * Re: Транзакции или скрипт? wiz   14.12.08 01:26
. * Re: Транзакции или скрипт? bira_more   14.12.08 20:10
. * Re: Транзакции или скрипт? wiz   14.12.08 21:14
. * Re: Транзакции или скрипт? bira_more   14.12.08 22:16
. * Re: Транзакции или скрипт? wiz   14.12.08 23:12
. * Re: Транзакции или скрипт? ЛУД ПPЪЧ   15.12.08 09:34
. * Re: Транзакции или скрипт? bira_more   15.12.08 23:10
. * Re: Транзакции или скрипт? ЛУД ПPЪЧ   16.12.08 10:58
. * Re: ами ... salle   17.12.08 23:25
. * Re: ами ... bira_more   18.12.08 01:14
. * Re: ами ... salle   18.12.08 03:25
. * Re: ами ... bira_more   18.12.08 15:54
. * Re: ами ... wqw   18.12.08 01:56
. * Re: ами ... salle   18.12.08 03:18
. * Re: ами ... wqw   18.12.08 10:37
. * Re: ами ... wiz   18.12.08 12:37
. * Re: ами ... salle   18.12.08 13:44
. * нещо ме бъркаш за MyISAM wiz   18.12.08 12:12
. * Re: нещо ме бъркаш за MyISAM salle   18.12.08 13:48
. * Re: ами ... wiz   18.12.08 12:23
. * Re: ами ... salle   18.12.08 13:35
. * Re: ами ... wiz   18.12.08 13:51
. * Re: ами ... wiz   18.12.08 13:55
. * Re: ами ... wqw   18.12.08 15:08
. * пак ме бъркаш със себе си wiz   18.12.08 16:06
. * Re: ами ... salle   18.12.08 18:55
. * Re: ами ... wiz   18.12.08 19:17
. * с други думи wiz   18.12.08 14:10
. * Re: с други думи salle   18.12.08 19:00
. * Re: с други думи wiz   18.12.08 19:11
. * Re: с други думи wiz   18.12.08 19:24
. * Re: с други думи wqw   18.12.08 19:35
. * Re: с други думи wiz   18.12.08 19:42
. * Re: с други думи wiz   18.12.08 19:45
. * Re: с други думи wqw   18.12.08 19:52
. * Re: с други думи wiz   18.12.08 19:59
. * Re: с други думи bira_more   18.12.08 20:28
. * в къв филм ме сложи? wiz   18.12.08 23:01
. * Re: в къв филм ме сложи? bira_more   18.12.08 23:09
. * Re: в къв филм ме сложи? wiz   18.12.08 23:16
. * Re: в къв филм ме сложи? bira_more   18.12.08 23:29
. * май пак пропускаш нещо wiz   18.12.08 23:37
. * Re: Транзакции или скрипт? ЛУД ПPЪЧ   14.12.08 16:40
. * несериозно оправдание? wiz   15.12.08 22:33
. * Re: несериозно оправдание? bira_more   15.12.08 23:24
. * Re: несериозно оправдание? wiz   16.12.08 11:02
. * Re: несериозно оправдание? bira_more   16.12.08 19:08
. * Re: несериозно оправдание? wiz   16.12.08 19:15
. * Re: несериозно оправдание? bira_more   16.12.08 21:23
. * Re: несериозно оправдание? wqw   17.12.08 00:02
. * хаха не си дочел какво съм писал wiz   17.12.08 00:19
. * Re: хаха не си дочел какво съм писал wqw   17.12.08 16:44
. * нещо си се избъзкал със себе wiz   17.12.08 17:28
. * Re: нещо си се избъзкал със себе wqw   17.12.08 18:07
. * Re: нещо си се избъзкал със себе wiz   17.12.08 18:21
. * Re: нещо си се избъзкал със себе wqw   17.12.08 18:40
. * Re: нещо си се избъзкал със себе wiz   17.12.08 18:50
. * Re: нещо си се избъзкал със себе wiz   17.12.08 18:56
. * Re: нещо си се избъзкал със себе wqw   17.12.08 20:17
. * Re: нещо си се избъзкал със себе wiz   17.12.08 21:08
. * Re: несериозно оправдание? salle   17.12.08 12:34
. * Re: несериозно оправдание? salle   17.12.08 12:41
. * Re: несериозно оправдание? wqw   17.12.08 16:53
. * Re: несериозно оправдание? bira_more   17.12.08 21:43
. * Re: несериозно оправдание? wiz   17.12.08 00:23
. * Re: несериозно оправдание? bira_more   17.12.08 21:39
. * "собствен екзекютив "? wiz   17.12.08 21:44
. * Re: "собствен екзекютив "? bira_more   18.12.08 00:02
. * Re: "собствен екзекютив "? wiz   18.12.08 07:38
. * Re: "собствен екзекютив "? bira_more   18.12.08 15:46
. * Re: "собствен екзекютив "? wiz   18.12.08 16:10
. * Re: "собствен екзекютив "? bira_more   18.12.08 20:05
. * Re: "собствен екзекютив "? wiz   18.12.08 23:09
. * Не можеш да покажеш bira_more   18.12.08 23:11
. * Re: Не можеш да покажеш wiz   18.12.08 23:20
. * Re: Не можеш да покажеш bira_more   18.12.08 23:31
. * Re: Не можеш да покажеш wiz   18.12.08 23:40
. * Re: Не можеш да покажеш bira_more   19.12.08 00:09
. * Re: Не можеш да покажеш wiz   19.12.08 10:16
. * Re: Не можеш да покажеш bira_more   19.12.08 14:47
. * Re: Не можеш да покажеш wqw   19.12.08 12:12
. * чети вместо да пишеш глупости wiz   19.12.08 12:33
. * Re: Не можеш да покажеш bira_more   19.12.08 14:50
. * Re: Не можеш да покажеш wiz   19.12.08 16:06
. * Re: Не можеш да покажеш bira_more   19.12.08 16:55
. * радвам се че ме разбра wiz   19.12.08 17:02
. * Само се чудя bira_more   19.12.08 17:14
. * Re: Само се чудя wiz   19.12.08 17:23
. * Re: Само се чудя wqw   19.12.08 17:28
. * Re: Само се чудя wiz   19.12.08 17:39
. * Re: Само се чудя bira_more   19.12.08 18:19
. * Re: Само се чудя wiz   19.12.08 18:31
. * с други думи wiz   19.12.08 18:48
. * Re: с други думи bira_more   19.12.08 20:07
. * Re: Само се чудя wiz   19.12.08 17:44
. * Re: Само се чудя wqw   19.12.08 18:50
. * само може да ме разсмиваш wiz   19.12.08 18:58
. * предложение wiz   19.12.08 17:56
. * Re: предложение bira_more   19.12.08 18:15
. * Re: предложение wiz   19.12.08 18:26
. * Re: предложение bira_more   19.12.08 20:13
. * Re: предложение wiz   19.12.08 20:35
. * Re: предложение bira_more   19.12.08 21:01
. * ок wiz   19.12.08 21:14
. * Re: ок bira_more   19.12.08 21:48
. * Re: ок wiz   19.12.08 22:06
. * Re: ок bira_more   19.12.08 22:12
. * Re: ок wiz   19.12.08 22:16
. * Re: ок bira_more   19.12.08 22:42
. * Re: ок wiz   19.12.08 22:59
. * Re: ок Goose   21.12.08 12:41
. * ти си поредния смешен wiz   21.12.08 14:53
. * Re: ти си поредния смешен Goose   21.12.08 17:18
. * май и ти почна като бирата wiz   21.12.08 18:20
. * оф Dakota   06.01.09 13:22
. * поредния дето пробва филм wiz   06.01.09 16:57
. * случайни грешки в софтуер?! Dakota   06.01.09 17:55
. * оф не разбрал wiz   06.01.09 18:52
. * Re: оф не разбрал Dakota   06.01.09 20:33
. * тва е въпрос на настроики wiz   06.01.09 20:44
. * Re: тва е въпрос на настроики bira_more   06.01.09 21:09
. * друга е целта wiz   06.01.09 21:36
. * Re: друга е целта bira_more   07.01.09 00:14
. * Re: друга е целта wiz   07.01.09 14:02
. * Re: друга е целта wqw   08.01.09 12:50
. * пак бъркаш със себе си wiz   08.01.09 14:48
. * Re: пак бъркаш със себе си wqw   08.01.09 15:49
. * пак бъркаш със себе си wiz   08.01.09 16:59
. * Re: друга е целта bira_more   08.01.09 17:06
. * за забавление wiz   08.01.09 17:12
. * Re: за забавление bira_more   08.01.09 19:40
. * Re: за забавление wiz   08.01.09 20:00
. * Re: за забавление bira_more   08.01.09 20:28
. * Re: за забавление wiz   08.01.09 20:57
. * Re: за забавление bira_more   08.01.09 22:46
. * Re: за забавление wiz   09.01.09 10:05
. * Re: за забавление bira_more   09.01.09 14:24
. * Re: за забавление wiz   09.01.09 14:44
. * Re: за забавление bira_more   09.01.09 15:53
. * a да и май не забеляза wiz   21.12.08 16:02
. * Re: Транзакции или скрипт? salle   16.12.08 11:08
. * Re: Транзакции или скрипт? bira_more   16.12.08 18:29
. * Re: Малко добавки salle   17.12.08 12:58
. * Re: Малко добавки bira_more   17.12.08 21:35
. * Re: Малко добавки salle   18.12.08 03:21
. * първо UPDATE и после всичко останало Dakota   06.01.09 14:20
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.