[Moscow.pm] Задачка на подумать, кому интересно...

Akzhan Abdulin akzhan.abdulin на gmail.com
Пн Дек 2 06:55:45 PST 2013


При этом обязательно надо генерировать числа не до максимума, а до некоего
значения далеко за пределом, чтобы число не менялось, ибо это приведет к
нарушению принципа взаимных соответствий.

В общем, задача тривиальна, если воспринимать как хэш с коллизиями.


2 декабря 2013 г., 18:51 пользователь Akzhan Abdulin <
akzhan.abdulin на gmail.com> написал:

> посчитать селективность (запомнить однократно),
>
> потом просто сгенерировать пачку псевдослучайных id и выполнить select по
> ним (IN) с доп. условием на доступность всем.  количество id равно
> количество нужным поделить на селективность.
>
> Получили результат. Если недостаточно, генерируем вторую пачку и отбираем
> остаток.
>
> Итого в среднем один запрос с поиском по PK + фильтр. Редко два.
>
> Повторяемость обеспечивается выбором и настройкой алгоритма генерации
> случайных чисел.
>
>
>
> 2 декабря 2013 г., 17:27 пользователь Михаил Монашёв <
> postmaster на softsearch.ru> написал:
>
> Здравствуйте.
>>
>> Есть  таблица  с  объектами  в  mysql. Новые объекты туда добавляются,
>> плохие  объекты  удаляются,  бывает что по много штук сразу. Некоторые
>> объекты  имеют  статус  скрытых  от всех, а все остальные доступны для
>> всех. Т.е. в таблице равномерно растёт id объектов, но между соседними
>> id  могут  быть  дырки, причём большие. И некоторые объекты показывать
>> нельзя.
>>
>> Даётся  текстовая  строка.  В идеале нужно для этой строке максимально
>> быстро  выбрать  из  таблицы случайные 3 разных объекта, доступные для
>> всех.  Причём так, чтобы повторные выборы давали те же самые объекты и
>> изменения таблицы минимально влияли на это.
>>
>> Т.е.  надо  из  перла обратиться к mysql-ю минимальное количество раз,
>> сделав максимально быстрые запросы. Самое важное - скорость. Ей нельзя
>> жертвовать. Можно жертвовать, но крайне нежелательно, привязкой строки
>> к  объектам. Понятно, что таблица меняется и привязки строк к объектам
>> будут меняться. Необходимо, чтобы эти изменения были минимальны. Можно
>> жертвовать  количеством  выбираемых объектов, например выбирать иногда
>> не  3, а 2 или 1, но не 0. Можно жертвовать степенью случайности между
>> выбираемыми объектами, например, выбирая лишь один случайным способом,
>> а  остальные  искать  поблизости от первого. Нельзя жертвовать охватом
>> объектов таблицы, т.е. выбираться объекты должны среди всех не скрытых
>> объектов.
>>
>> --
>> С уважением,
>>  Михаил                          mailto:postmaster на softsearch.ru
>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20131202/634dc9cd/attachment-0001.html>


Подробная информация о списке рассылки Moscow-pm