при значении 40 отдаст оба варианта, а нужен только 1.
Ваш способ можно расширить до подсчета суммы всех весов *100
и рандомить от 0 до N
и отдавать от 0 до М первое значение, а от М до N второе
Мне интересно именно на сервере, т.к. настройки локального сервера и настройки сервера могут отличаться. Наверняка где-то можно посмотреть статистику по количеству отданных страниц из кэша. Наверняка есть настройки, где написано использовать ли кэш
на сколько я знаю, есть настройки, из-за которых после N запросов идет повторная генерация, а эти скрипты часто загружаемые, так что если между открытиями двух страниц будет N количество запросов, я могу увидеть, что количество запросов увеличилось на 1, а на самом деле между моими заходами было еще 100
А какая нужна конкретика?
Мне нужно парсить выдачу гугла, раз в пол часа. 15 различных городов, несколько различных запросов, 5 первых страниц. ~500 страниц получается. Сейчас запускаю это все одним скриптом, каждая страница обрабатывается 1.5-2 секунды = ~12 минутам, мне интересно как лучше реализовать, чтобы не нагружался сервер, чтобы можно было увеличить количество обрабатываемых страниц до 5000.
Как минимум можно сделать через meta refresh, который запишет туда страницу, где был этот тэг.
Но так или иначе, у меня есть бд, куда я пишу все реферы, и там попадаются реферы, которые не являются адресами страниц, значит как-то это делается.
Владлен Ultra: я же написал, это самый сложный скрипт который использую.
Идея такая есть 2 базы по дням и по пользователям, по структуре они почти одинаковые
по дням там всего 12 записий(количество дней работы скрипта), а самая большая users ~1,500,000 записей (date,user_id,script_show(количество просмотров страницы)).
Сейчас скрипт работает по такой логике:
1) проверяю есть ли запись за текущий день(по date и user_id), если нет, создаю ее, если есть делаю update счетчика(для обоих таблиц)
2) Проверяю условие счетчика:
SELECT count(*) as users_more_3 FROM `users` WHERE date=? AND user=? AND script_show>2 LIMIT 1
на основе этого может быть еще несколько update
Syschel: немного упрощу вопрос еще, мне нужна связка (diviceId, COUNT_of_unic)
т.е. есть два файла, которые на скриншоте слева, всего 8 уникальных id, но есть в них повторения id(3,4,5), вопрос в том, как их отсеять лучше? Они идут по порядку, можно например, брать из базы последнее значение занесенного id, и делать continue в цикле, пока не дойду до строки, которой еще нету в базе, и делать два запроса insert и update для каждой новой строки.
Тогда нужна таблица получиться:
device1 - 5
device2 - 3
Ваш способ можно расширить до подсчета суммы всех весов *100
и рандомить от 0 до N
и отдавать от 0 до М первое значение, а от М до N второе