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

Anton Nikishaev me на lelf.lu
Пн Дек 2 06:11:51 PST 2013


On 2 Dec 2013, at 17:27, Михаил Монашёв <postmaster at softsearch.ru> 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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20131202/8ee6696c/attachment.bin>


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