|
MySQL.RU - Webboard
Вернуться
Помогите решить задачку (K) 15/06/2006 - 00:17:05
Re: Помогите решить задачку (K) 15/06/2006 - 00:33:24
Re: Помогите решить задачку (Dinky) 15/06/2006 - 19:16:51
Re: Помогите решить задачку (K) 16/06/2006 - 17:59:43
Re: Помогите решить задачку (Dinky) 16/06/2006 - 20:16:23
> Original message text:
> From: K - 15/06/2006 - 00:17:05
> Subject:Помогите решить задачку
> -----------------
> Может для кого-то это окажется просто -)
>
> Предполагается сделать следующее
> В таблице InnoDB table1 есть некоторые данные, в том числе - имена других таблиц MyISAM
> Нужно рэндомно выбрать из неё другие таблицы по некоторым критериям
> Обработать их, и обновить данные в общей таблице table1
> При этом пока один поток работает с выбранной таблицой из таблицы table1, другой не должен с ней работать
>
>
> Можно ли организовать выборку следующим образом, чтобы это не привело к взаимоблокировкам
>
> SELECT nametable FROM table1 WHERE n<12 AND n>6 ORDER BY RAND LIMIT 100 FOR UPDATE;
> цикл 0-99
> {
> работа с таблицой nametable - несколько секунд, в другом участке кода с ней может работать другой, но не здесь
> UPDATE table1 SET ... WHERE ...;
> }
>
> или как это можно организовать быстрее?
>
> на данный момент table1- MYISAm, сначала выбираются все записи с table1 по заданным критериям
> потом рэндомно (rand()) выбирается таблица из этого списка, попытка блокировать ее на уровне приложения GET_LOCK
> только вот работает это медленно, вчастности из-за того, что несколько потоков попадают рэндомно на одни значения
> рэндом нужен чтобы распределить нагрузку, т.е. многопотоковая обработка
>
> хочется возложить эту рэндомную работу на MySQL
>
>
From: K - 16/06/2006 - 17:59:43
Subject:Помогите решить задачку
-----------------
так я спрашиваю можно ли блокировать строки по условию?
кто работал с InnoDB?
вопрос в том как юудут вести себя несколько блокировок
будет ли 2-я перескакивать через блокированные строки 1-Й?
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
28767
|
|