Я задачу понял так, что требуется полное покрытие только при первом выборе. Последующие выборы должны повторять первый выбор.
Михаил, всё верно? 2 декабря 2013 г., 20:11 пользователь Anton Nikishaev <[email protected]> написал: > > On 2 Dec 2013, at 17:27, Михаил Монашёв <[email protected]> wrote: > > > Здравствуйте. > > > > Есть таблица с объектами в mysql. Новые объекты туда добавляются, > > плохие объекты удаляются, бывает что по много штук сразу. Некоторые > > объекты имеют статус скрытых от всех, а все остальные доступны для > > всех. Т.е. в таблице равномерно растёт id объектов, но между соседними > > id могут быть дырки, причём большие. И некоторые объекты показывать > > нельзя. > > > > Даётся текстовая строка. > > Следующие 2 предложения немного противоречат друг другу: > > > В идеале нужно для этой строке максимально > > быстро выбрать из таблицы случайные 3 разных объекта, доступные для > > всех. Причём так, чтобы повторные выборы давали те же самые объекты и > > изменения таблицы минимально влияли на это. > > Если у нас maxid=A и мы выбрали для S из [1..A]. Затем maxid стало B≫A и > нам > нужно выбрать опять для S. Из [1..A] или [1..B]? > > > > Т.е. надо из перла обратиться к mysql-ю минимальное количество раз, > > сделав максимально быстрые запросы. Самое важное - скорость. Ей нельзя > > жертвовать. Можно жертвовать, но крайне нежелательно, привязкой строки > > к объектам. Понятно, что таблица меняется и привязки строк к объектам > > будут меняться. Необходимо, чтобы эти изменения были минимальны. Можно > > жертвовать количеством выбираемых объектов, например выбирать иногда > > не 3, а 2 или 1, но не 0. Можно жертвовать степенью случайности между > > выбираемыми объектами, например, выбирая лишь один случайным способом, > > а остальные искать поблизости от первого. Нельзя жертвовать охватом > > объектов таблицы, т.е. выбираться объекты должны среди всех не скрытых > > объектов. > > > -- > lelf > > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > > -- Best regards, Andrei +7-937-847-60-74
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
