Levon A. Akopian (loingrim) wrote,
Levon A. Akopian
loingrim

Помощь зала...

Вот интересная задача:

Есть таблица на сотни тысяч записей.
Нужно вытянуть из нее 20 случайных записей.
Проблема в том, что подобный запрос должен происходить при заходе пользователя на ресурс или обновлении страницы. При этом хочется, чтобы ресурс держал сотню заходов в секунду. При этом, конечно, хочется использовать кеширование.
Операции добавления намного будут сравнительно редки по сравнению с выборкой.


Пути решения:
Первый вариант:
добавить к каждой записи уникальный номер, всюду плотный (т.е. без дырок) и генерить в скрипте 20 случайных чисел. Минусы такого подхода в том, что не получится использовать кеширование (без извратов) и к тому же генератор случайностей в PHP-не очень...

Второй вариант:
генерить очередь (т.е. последовательность ID) и выбирать их оттуда по мере необходимости. Здесь возникает вопрос её генерации и ситуации, когда она закончится.

Третив вариант: ...


Есть у кого-нибудь идеи?
Tags: Веб-мастер веб-мастеру, Гм...
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 10 comments