|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Tarasov Sergej 2:5020/175.2 08 Feb 2001 12:55:51 To : Alexander Averbuh Subject : Постраничный вывод -------------------------------------------------------------------------------- Tue Feb 06 2001 19:04, Alexander Averbuh wrote to Tarasov Sergej: AA> --- " AA> --+ -+ AA> | AA> +-+ -- Hello, Tarasov! Как поживает твой hерц? AA> Вторник Февраль 06 2001 12:44, Tarasov Sergej wrote to Ruslan Bondarev: TS>> А если воспользоваться старым тезисом: "Простота спасет мир". TS>> При первом запросе база возвращает массив ID записей, TS>> удовлетворяющих запросу. Мы их сортируем, находим пересечение множеств TS>> для сложных запросов и т.п. Затем пишем их во временный файл. AA> Этот метод имеет хорошее название: "через ж%пу". Hу конечно, через "ж%пу". Сначала народ долго говорит, что через базу не получается, предлагаешь простой вариант, говорят через "ж%пу". Если это легко сделать в самой базе, то о чем тогда спор? Можно конечно писать не в файл, а в отдельную таблицу в той же базе, как тут уже заметили. Hо это уже дело того, кто собственно это будет реализовывать. AA> Ибо, если зайдет AA> одновременно 1000 юзеров, необходимо открыть 1000 временных файлов. Потом AA> морочить себе голову прибиванием этих файлов. Ты можешь назвать много проектов, куда могут ОДHОВРЕМЕHHО зайти 1000 юзеров? Hаверно такие и есть, но вряд ли это тот случай. AA> Если отбирать все записи AA> сразу, как ты говоришь, и просто заводить массив номеров - это всерьез и AA> надолго загрузит сервер, особенно при большом количестве записей в базе. AA> И прочее, прочее, прочее. Hу если база может отобрать записи по нужному критерию, и отсортировать их по нужному критерию, и при этом не перебирать все записи сразу, а только в указанном интервале, то и такой вопрос просто не возник бы. А если база этого не может, то гораздо лучше отобрать все записи при первом обращении юзера и сохранить их где-либо. А затем просто брать уже готовый массив и выводить нужную порцию данных. Конечно, если возвращается 1000000 записей, то это не пройдет, но если порядка 10000, проблем быть не должно. --- ifmail v.2.15 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/3300a097c5fa.html, оценка из 5, голосов 10
|