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

Михаил Монашёв postmaster на softsearch.ru
Пн Дек 2 05:27:24 PST 2013


Здравствуйте.

Есть  таблица  с  объектами  в  mysql. Новые объекты туда добавляются,
плохие  объекты  удаляются,  бывает что по много штук сразу. Некоторые
объекты  имеют  статус  скрытых  от всех, а все остальные доступны для
всех. Т.е. в таблице равномерно растёт id объектов, но между соседними
id  могут  быть  дырки, причём большие. И некоторые объекты показывать
нельзя.

Даётся  текстовая  строка.  В идеале нужно для этой строке максимально
быстро  выбрать  из  таблицы случайные 3 разных объекта, доступные для
всех.  Причём так, чтобы повторные выборы давали те же самые объекты и
изменения таблицы минимально влияли на это.

Т.е.  надо  из  перла обратиться к mysql-ю минимальное количество раз,
сделав максимально быстрые запросы. Самое важное - скорость. Ей нельзя
жертвовать. Можно жертвовать, но крайне нежелательно, привязкой строки
к  объектам. Понятно, что таблица меняется и привязки строк к объектам
будут меняться. Необходимо, чтобы эти изменения были минимальны. Можно
жертвовать  количеством  выбираемых объектов, например выбирать иногда
не  3, а 2 или 1, но не 0. Можно жертвовать степенью случайности между
выбираемыми объектами, например, выбирая лишь один случайным способом,
а  остальные  искать  поблизости от первого. Нельзя жертвовать охватом
объектов таблицы, т.е. выбираться объекты должны среди всех не скрытых
объектов.

-- 
С уважением,
 Михаил                          mailto:postmaster на softsearch.ru



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