Перейти к содержанию
Форум поддержки пользователей VamShop

учет показов банеров вешает сервер БД


Иван Градов

Рекомендуемые сообщения

учет показов баннеров напрочь вешат сервер БД

10/02/2009 16:02:55 | 1040 - Too many connections | connect | /affiliate_show_banner.php?ref=78&affiliate_banner_id=8

10/02/2009 16:02:58 | 1040 - Too many connections | connect | /affiliate_show_banner.php?ref=77&affiliate_banner_id=4

10/02/2009 16:02:13 | 1040 - Too many connections | connect | /affiliate_show_banner.php?ref=78&affiliate_banner_id=8

10/02/2009 16:02:13 | 1040 - Too many connections | connect | /affiliate_show_banner.php?ref=42&affiliate_banner_id=4

как отключить учетпоказов, оставив только учет кликов?

Ссылка на сообщение
Поделиться на другие сайты

Он не вешает - сервер просто не даёт подключиться, тем самым спасаясь от перегрузки.

Если affiliate_show_banner.php не может подключиться к базе, то ему просто неоткуда взять адрес картинки.

Так что предпосылка неверна - дело не в учёте показов.

Решение только одно - кэширование.

Саша!

1. /inc/vam_display_banner.inc.php в affiliate_show_banner.php не используется.

2. Ошибка возникает при connect, т.е. задолго до каких-либо запросов к базе и вызовах других функций.

Ссылка на сообщение
Поделиться на другие сайты

в учете.

там происходит так: сервер ТАК засирается учетом показов, что уже не может отвечать на выдачу картинок... до 20 вызовов баннеров в секунду происходит...

за полгода таблица учета показов выросла до 250 метров

извиняюсь: не так поставил акценты - учет показов баннеров на сайтах партнеров

Ссылка на сообщение
Поделиться на другие сайты

Ой, пардон, невнимательно посмотрел на текст ошибки, думал обычные баннеры, а не партнёрские.

т.к. показ баннера делается через скрипт affiliate_show_banner.php, что в корне, как насколько я помню, в принципе, что б не учитывались показы может просто партнёрам html-код давать с обычным img src тэгом, не используя скрипт.

т.е. просто html код будет примерно:


<a href="http://vamshop.loc/product_info.php?ref=1&products_id=1&affiliate_banner_id=1" target="_blank"><img src="http://vamshop.loc/images/kartinka-bannera.gif" border="0" alt="Товар"></a>
[/code] вместо стандартного:
[code]
<a href="http://vamshop.loc/product_info.php?ref=1&products_id=1&affiliate_banner_id=1" target="_blank"><img src="http://vamshop.loc/affiliate_show_banner.php?ref=1&affiliate_pbanner_id=1" border="0" alt="Товар"></a>

Ссылка на сообщение
Поделиться на другие сайты

Какой ты упрямый!

Ещё раз.

Дело не в учёте. Чтобы affiliate_show_banner.php получил имя картинки с банером ему нужно сделать запрос в БД. Чтобы сделать запрос, нужно законнектиться. Вот тут его сервер БД и не пускает, потому что уже коннектов больше допустимого.

А если-бы пустил, то affiliate_show_banner.php получил-бы имя картинки, сформировал бы её адрес, увеличил-бы счётчик показа, закрыл коннект к базе, и вывел-бы картинку.

Размер таблицы учёта показов на количество доступных коннектов не влияет!

Ссылка на сообщение
Поделиться на другие сайты

я вот про что пишу: мне как раз и надо просто отдать баннер без записи в БД. тогда будет отдавать по запросу нормально: там при запросе 3\4 времени сжирает эта запись увеличения счетчика показа... вот мне и надо отключить ее - не надо считать... тогда будет успевать отдавать картинки...

Ссылка на сообщение
Поделиться на другие сайты

Так я ж об этом примерно и написал.

Просто в affiliate_banners.php замени все:


<img src="' . HTTP_SERVER . DIR_WS_CATALOG . FILENAME_AFFILIATE_SHOW_BANNER . '?ref=' . $_SESSION['affiliate_id'] . '&affiliate_banner_id=' . $ban_id . '" border="0" alt="' . $affiliate_banners['affiliate_banners_title'] . '">
[/code] на:
[code]
<img src="' . HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_IMAGES . $affiliate_banners['affiliate_banners_image'] . '" border="0" alt="' . $affiliate_banners['affiliate_banners_title'] . '">

Что б не через скрипт шёл показ баннера.

Только нужно ведь просить уже разместивших код поменять его.

Ссылка на сообщение
Поделиться на другие сайты

Можно убрать код, который отвечает за запись статистики.

в файле affiliate_show_banner.php попробовать убрать следующий код:

    if ($affiliate_id) {

    $banner_stats_query = vam_db_query("select * from " . TABLE_AFFILIATE_BANNERS_HISTORY . " where affiliate_banners_id = '" . $banner_id  . "' and affiliate_banners_products_id = '" . $products_id ."' and affiliate_banners_affiliate_id = '" . $affiliate_id. "' and affiliate_banners_history_date = '" . $today . "'");

    if ($banner_stats_array = vam_db_fetch_array($banner_stats_query)) {

    vam_db_query("update " . TABLE_AFFILIATE_BANNERS_HISTORY . " set affiliate_banners_shown = affiliate_banners_shown + 1 where affiliate_banners_id = '" . $banner_id  . "' and affiliate_banners_affiliate_id = '" . $affiliate_id. "' and affiliate_banners_products_id = '" . $products_id ."' and affiliate_banners_history_date = '" . $today . "'");

    }

else {

          vam_db_query("insert into " . TABLE_AFFILIATE_BANNERS_HISTORY . " (affiliate_banners_id, affiliate_banners_products_id, affiliate_banners_affiliate_id, affiliate_banners_shown, affiliate_banners_history_date) VALUES ('" . $banner_id  . "', '" .  $products_id ."', '" . $affiliate_id. "', '1', '" . $today . "')");

          }

        }

Ссылка на сообщение
Поделиться на другие сайты

спаисбо, помогло :)

пока я тут переписывался, магазин висел... (час пик, в магазине по 10-15 человек пасется + час пик на партнерских сайтах)... как только внес изменения всё заработало... посмотрим чуть позднее, как это на статистике партнерской отразится.

Ссылка на сообщение
Поделиться на другие сайты

Сашин вариант лучше - вообще не будет обращений к БД. Только перегенерить банеры придётся.

В affiliate_configure.php нужно поставить:

define('AFFILIATE_KIND_OF_BANNERS','1');

Тогда будут генериться прямые ссылки на картинки.

Ссылка на сообщение
Поделиться на другие сайты

Сашин вариант лучше - вообще не будет обращений к БД. Только перегенерить банеры придётся.

В affiliate_configure.php нужно поставить:

define('AFFILIATE_KIND_OF_BANNERS','1');

Тогда будут генериться прямые ссылки на картинки.

угу. и уговорить примерно 200 партнеров сделать то же самое и заменить код на примерно 500 сайтах? боюсь вместо этого я лишусь партнеров...

Ссылка на сообщение
Поделиться на другие сайты

Так совмести оба варианта, для существующих уменьшишь обращения к базе, а новые будут получать код вообще без обращения к скрипту при загрузке баннера.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...