|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.05.2014, 06:15 | #1 |
Форумчанин
Регистрация: 29.09.2009
Сообщений: 587
|
Блокировка таблицы INNODB в MySql
Здравствуйте.
Интересует следующий момент как происходит неявное и явное блокирование записи в таблице. То есть необходимо сделать так чтоб когда пользователь читает какие либо записи скажем выбранные вот так Код:
Прочитал статью якобы не явное блокирование происходит при каждом selecte либо update и сервер выставляет его автоматом. попробовал смоделировать такую ситуацию и конечно сервер не чего мне не заблокировал, возможно я что то не так делал вот код моей ситуации 1 запрос на выбор Код:
Код:
|
14.05.2014, 07:59 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Вот так: http://dev.mysql.com/doc/refman/5.0/...ing-reads.html
Цитата:
I'm learning to live...
Последний раз редактировалось Stilet; 14.05.2014 в 08:02. |
|
14.05.2014, 08:10 | #3 |
Форумчанин
Регистрация: 29.09.2009
Сообщений: 587
|
мда печаль((( цель в том чтоб блочить записи пока юзер смотрит на них в браузере и думает делать что с ними или нет.
Вообщем что придумал я. Создаем некую табличку для блока куда пишуться ид записей которые выбирает пользователь, а записи для пользователя выбираются по его условию + id not in (select id из таблички для блока) когда получаем выборку для пользователя то ид этих записей заносим в табличку для блока чтоб их не видили остальные а по концу работы удаляем. Как считаете будет нормально работать? |
14.05.2014, 09:32 | #4 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,161
|
вряд ли...
и непонятна причина такой блокировки..... типа чтоб одновременно одну и ту же запись чтоль не редактировали? |
14.05.2014, 09:39 | #5 |
Форумчанин
Регистрация: 29.09.2009
Сообщений: 587
|
именно для этого. Чтоб когда человек просматривает не кто не мог поменять данные. Тот мутный алгоритм немного упростил
Пользователь выбирает гору записей но редактировать может только по одной, когда начинает редактирование меняется определенный ключ дата и время редактирования, это поможет заблокировать запись и сделать авто разблокировку если пользователя произойдет обрыв связи или он закроет страничку |
14.05.2014, 10:21 | #6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Мне кажется нужно заново продумать эту схему так чтоб от блокировок избавиться. Кстати если не ошибаюсь на ASP.NET есть возможность держать сессии. IIS стабильно будет блочить нужные записи, ибо он не работает с интерпретатором, а использует DLLки.
I'm learning to live...
|
|
14.05.2014, 10:44 | #7 |
Форумчанин
Регистрация: 28.06.2010
Сообщений: 189
|
В таблице с записями создать поле version (int) default 0, при каждом update увеличивать значение на 1.
При субмите юзером формы на сайте, проверить поменялось ли значение version. Если поменялось, то выдать сообщение ("данные устарели, обновить" или как-то так). |
14.05.2014, 11:13 | #8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Все равно я думаю что проще будет пересмотреть стратегию.
I'm learning to live...
|
|
14.05.2014, 11:20 | #9 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,799
|
А select for update в MySQL есть? Боюсь представить, как это будет работать в веб-приложении.
|
14.05.2014, 11:44 | #10 | ||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
1. удалил 2. заупдейтил удаленную. Цитата:
p.S. сделайте каждому юзеру отдельную таблицу и пусть радуется. 1 таблица и 100500 человек одновременно это идиотизмв высшей степени, если таблица не чисто информационная. Последний раз редактировалось Человек_Борща; 14.05.2014 в 11:47. |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
INSERT в MySQl базу типа InnoDB. Кодировка. | webber9989 | PHP | 0 | 09.01.2014 14:45 |
Конфигурация MySQL InnoDB | stepka | SQL, базы данных | 0 | 05.06.2011 15:00 |
Блокировка таблицы | Liones | БД в Delphi | 5 | 16.07.2010 11:45 |
блокировка таблицы при одновременном доступе | dalien | БД в Delphi | 3 | 12.08.2009 16:44 |