Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Простенькая задачка (consth) 25/09/2010 - 19:46:19
      Re: Простенькая задачка (FUKS) 28/09/2010 - 05:52:41
      Re: Простенькая задачка (consth) 04/10/2010 - 01:16:22

> Original message text:
> From: consth - 25/09/2010 - 19:46:19
> Subject:Простенькая задачка
> -----------------
> Имеется считалка трафика.
> Ну и соответственно табличка для нее.
> Задача проста: если по какой-то установленной сессии есть трафик - досуммировать его к имеющемуся и сдвинуть время окончания сессии.
> Если таковой сессии не обнаружено - вставить новую строчку в таблицу.
> Вроде бы стандартное решение:
> INSERT INTO `tr20100925` SET keyss='193.169.62.13:3893:10.139.73.12:55778:17:' , timestart = '1285410646', timefin = '1285410646' , ipsource = '193.169.62.13' , portsource = '3893' , ipdest ='10.139.73.12' , portdest ='55778' , proto = '17' , traf = '268' ON DUPLICATE KEY UPDATE timefin = '1285410646' , traf = traf+'268';
> Но маленькая проблемка. Таких строчек у меня набирается за 15 минут около 5 миллионов. Все они запихиваются в файл, после чего файл скармливается MySQL
> mysql -h 1.1.1.1 -u traf -p -b statbase < /var/flows/acct/traff0.sql
> и всего после 1,5 часов обработки (проц при этом загружен не более чем на 5%) мне выдается
> ERROR 1114 (HY000) at line 1327908: The table 'tr20100925' is full
> Вопроса собственно 2:
> 1.Как мне уложиться не в 1,5 часа а в 15 минут ?
> 2.Где надо чего подкрутить, чтобы не выскакивала ошибка?
> Ну и глобальный вопрос - а вообще это реализуемо на MySQL или какую другую базу поискать.
>
>


From: FUKS - 28/09/2010 - 05:52:41
Subject:Простенькая задачка
-----------------
А каким запросом создана таблица? Поле keyss выглядит лишним, достаточно объявить
... UNIQUE(ipsource,portsource,ipdest,portdest,proto)
Но и это явно лишнее, потому как даже при дублировании ключа (скорее всего случайном) это будут РАЗНЫЕ сессии, смысла нет искать в базе такую же комбинацию. portsource - значение чаще всего динамическое и ключевым считаться не может. ipsource - то же самое, скорее всего динамический IP-адрес, не идентифицирующий конкретного юзера, при совпадении ключа суммируется время для разных юзеров.
Далее, почему интервал 15 минут? Для начала надо бы добиться результата на интервале хотя бы 15 секунд.



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
37543



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |