Здравствуйте. Есть таблица с объектами в mysql. Новые объекты туда добавляются, плохие объекты удаляются, бывает что по много штук сразу. Некоторые объекты имеют статус скрытых от всех, а все остальные доступны для всех. Т.е. в таблице равномерно растёт id объектов, но между соседними id могут быть дырки, причём большие. И некоторые объекты показывать нельзя.
Даётся текстовая строка. В идеале нужно для этой строке максимально быстро выбрать из таблицы случайные 3 разных объекта, доступные для всех. Причём так, чтобы повторные выборы давали те же самые объекты и изменения таблицы минимально влияли на это. Т.е. надо из перла обратиться к mysql-ю минимальное количество раз, сделав максимально быстрые запросы. Самое важное - скорость. Ей нельзя жертвовать. Можно жертвовать, но крайне нежелательно, привязкой строки к объектам. Понятно, что таблица меняется и привязки строк к объектам будут меняться. Необходимо, чтобы эти изменения были минимальны. Можно жертвовать количеством выбираемых объектов, например выбирать иногда не 3, а 2 или 1, но не 0. Можно жертвовать степенью случайности между выбираемыми объектами, например, выбирая лишь один случайным способом, а остальные искать поблизости от первого. Нельзя жертвовать охватом объектов таблицы, т.е. выбираться объекты должны среди всех не скрытых объектов. -- С уважением, Михаил mailto:[email protected] -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
