livetv

Рейтинг
270
Регистрация
10.02.2015

В mysql нету "WITH"

Каждый раз выбирать рендомом - большая нагрузка на базу, если она большая.

Что можно сделать:

а) выбирать допустим 10 случайных и кешировать их на час, а на приложении уже выбирать их согласно весов.

б) завести дополнительное поле "Накопительный вес".

Потом:

1) зная суммарный вес WeightSum,

2) генерируем случайное число $WeightRand = rand(0, Sum)

3) выбираем из базы запись с условием WHERE Weight > $WeightRand ORDER BY Weight ASC LIMIT 1

Минусы: при деактивации баннера нужно обновлять накопительные веса всем баннерам после него.

Собрать с исходников (сам так делал)

Если Вы не предоставляете услуги третьим лицам и есть мозги в голове, то я советовал бы обойтись без панелей и настраивать все руками в консоли. Не нужно будет пробиваться через глупости панели. :)

А смысл временные таблицы на tmpfs переносить?

Много памяти? Увеличьте размер временных таблиц в памяти.

В логах доступа Ваш паук?

Если да, то смысл было давать этот лог? :)

Там запросов больше 5 в секунду. То есть это вряд ли php задыхается.

Скорее всего до него запрос не доходит.

Да и обычно в случае недоступности бекэнда будет 502 ошибка.

Нужен лог ошибок, второй файл не похож на него, да и он скудный. :)

А также попробуйте перезапустить nginx и php.

kom09:
Сохраните путь к изначальному php-файлу еще до самого первого include в переменную из __DIR__ или __FILE__. Потом используйте эту переменную во включенном скрипте.

Лучше использовать $_SERVER['DOCUMENT_ROOT'] и от него плясать.

Сколько времени прошло от переезда?

Возможен кеш ДНС.

Что говорят GWMT и ЯВМ?

shulinin:
Но если кто знает конкретное решение по моему вопросы из шапки, будут рад за ответ. Применю в будущих проектах.

Ваш код никто не видел, поэтому никаких конкретных решений...

tommy-gung:
ну и когда проводят эксперименты с деньгами, не стоит полагаться на случай)

Если критично, что на одном будет 49, а на другом 51, то нужен round robin (сохранять последний показанный, на следующий раз показывать следующий, или лучше показывать пачками по 10+, чтобы меньше блокировок было).

Всего: 2603