<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Можно хранить ID-шники где-нить типа Redis и заюзать вот такое - <a href="http://redis.io/commands/srandmember">http://redis.io/commands/srandmember</a> , ну а потом уже по PK в MySQL. Если не Redis, то что-то подобное скорее всего у вас должно быть.</div><div><br></div><div>Евгений</div><br><div><div>On Dec 2, 2013, at 5:27 PM, Михаил Монашёв wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Здравствуйте.<br><br>Есть  таблица  с  объектами  в  mysql. Новые объекты туда добавляются,<br>плохие  объекты  удаляются,  бывает что по много штук сразу. Некоторые<br>объекты  имеют  статус  скрытых  от всех, а все остальные доступны для<br>всех. Т.е. в таблице равномерно растёт id объектов, но между соседними<br>id  могут  быть  дырки, причём большие. И некоторые объекты показывать<br>нельзя.<br><br>Даётся  текстовая  строка.  В идеале нужно для этой строке максимально<br>быстро  выбрать  из  таблицы случайные 3 разных объекта, доступные для<br>всех.  Причём так, чтобы повторные выборы давали те же самые объекты и<br>изменения таблицы минимально влияли на это.<br><br>Т.е.  надо  из  перла обратиться к mysql-ю минимальное количество раз,<br>сделав максимально быстрые запросы. Самое важное - скорость. Ей нельзя<br>жертвовать. Можно жертвовать, но крайне нежелательно, привязкой строки<br>к  объектам. Понятно, что таблица меняется и привязки строк к объектам<br>будут меняться. Необходимо, чтобы эти изменения были минимальны. Можно<br>жертвовать  количеством  выбираемых объектов, например выбирать иногда<br>не  3, а 2 или 1, но не 0. Можно жертвовать степенью случайности между<br>выбираемыми объектами, например, выбирая лишь один случайным способом,<br>а  остальные  искать  поблизости от первого. Нельзя жертвовать охватом<br>объектов таблицы, т.е. выбираться объекты должны среди всех не скрытых<br>объектов.<br><br>-- <br>С уважением,<br> Михаил                          <a href="mailto:postmaster@softsearch.ru">mailto:postmaster@softsearch.ru</a><br><br>-- <br>Moscow.pm mailing list<br><a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org">http://moscow.pm.org</a><br></div></blockquote></div><br></body></html>