Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Вопрос по рандомизации UPDATE (Po4emu4ka) 20/03/2014 - 12:41:41
      Re: Вопрос по рандомизации UPDATE (Akina) 20/03/2014 - 17:17:41
      Re: Вопрос по рандомизации UPDATE (Po4emu4ka) 20/03/2014 - 23:50:46
      Re: Вопрос по рандомизации UPDATE (Akina) 21/03/2014 - 11:20:38
      Re: Вопрос по рандомизации UPDATE (Po4emu4ka) 21/03/2014 - 11:42:23
      Re: Вопрос по рандомизации UPDATE (Akina) 21/03/2014 - 13:12:32

> Original message text:
> From: Po4emu4ka - 20/03/2014 - 12:41:41
> Subject:Вопрос по рандомизации UPDATE
> -----------------
> Существует таблица, заполненная ip-адресами. Появляется запрос на присвоение, выбирается свободный адрес из нужного диапазона, происходит update записи. Внимание вопрос, как сделать так, чтобы адрес забирался рандомно из таблицы? Сейчас они берутся последовательно, что вызывает дальнейшие сложности.
> Пример update:
> UPDATE ippool SET active=1, session_id=CRC32('%%{Acct-Session-Id}') WHERE username=%s AND nsapi=%s AND iprange_id IN (%s) LIMIT 1
>
> Буду благодарен за идеи. Спасибо.
>


From: Po4emu4ka - 20/03/2014 - 23:50:46
Subject:Вопрос по рандомизации UPDATE
-----------------
Пулы заполнялись последовательно, отсюда и проблема стала ползти. Забираются тоже последовательно. Так уж дэфолно запросы возвращают. Отсюда отсутствие размазанности. ORDER BY RAND - не вариант, там по 10 запросов в секунду может быть, каждая миллисекунда важна.
Да, знал бы раньше про такую проблему, загонял бы данные в таблицу скриптом с рандомайзером, но теперь уже поздно (вернее этот вариант, конечно, возможен, но геморрой.) Вот думаю, может можно какую-то опцию у базы подкрутить? Или ещё какой вариант существует, о котором я не догадываюсь? :) Чтобы свободные адреса селект возвращал не в той последовательности как они в таблицу складывались...


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
43081



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |