powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация запросов
3 сообщений из 3, страница 1 из 1
Оптимизация запросов
    #32572663
Tangar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется следующая табличка по трафику:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE TABLE `traffic` (
  `ID` int( 10 ) unsigned NOT NULL auto_increment,
  `Day` datetime NOT NULL default '0000-00-00 00:00:00',
  `FromIP` char( 15 ) NOT NULL default '',
  `SPort` int( 10 ) unsigned NOT NULL default '0',
  `X12` char( 7 ) NOT NULL default '',
  `X3` int( 10 ) unsigned NOT NULL default '0',
  `X4` int( 10 ) unsigned NOT NULL default '0',
  `DPort` int( 10 ) unsigned NOT NULL default '0',
  `Bytes` int( 10 ) unsigned NOT NULL default '0',
  `IFace` char( 10 ) NOT NULL default '',
  `RouterID` int( 10 ) unsigned NOT NULL default '0',
  PRIMARY KEY  (`ID`)
) TYPE=MyISAM; 
, содержащая приблизительно 8 млн. записей.
По ней постоянно (где-то раз в пол-часа) выполняются подряд следующие запросы (собстно код скрипта опускаю, там ничего загружающего mysql нет):
Код: plaintext
INSERT INTO traffic (`ID`,`Day`,`FromIP`,`SPort`,`X12`,`X3`,`X4`,`DPort`,`Bytes`,`IFace`,`RouterID`) VALUES ('', \'$Date\', '$Row[0]', '$Row[4]', '$Dst[0].$Dst[1]', '$Dst[2]', '$Dst[3]', '$Row[5]', '$Row[3]', '', '$Routers{$ip}')
- где-то по ~5000 за раз.
Код: plaintext
SELECT `Day`,`X12`,`X3`,`X4`,SUM(`Bytes`),`FromIP` FROM `traffic` WHERE (`Day` LIKE '$cur_date_full%' AND (`X12`=\'$net_prefix\' OR `X12`='192.168' OR `X12`='194.67')) GROUP BY `X3`,`X4`,`FromIP`

Код: plaintext
SELECT `Day`,`X12`,`X3`,`X4`,`SPort`,SUM(`Bytes`),`FromIP` FROM `traffic` WHERE (`Day` LIKE '$cur_date_full%' AND (`X12`=\'$net_prefix\' OR `X12`='192.168' OR `X12`='194.67') AND `SPort`='80') GROUP BY `X3`,`X4`,`FromIP`

Код: plaintext
SELECT `Day`,`X12`,`X3`,`X4`,`SPort`,SUM(`Bytes`),`FromIP` FROM `traffic` WHERE (`Day` LIKE '$cur_date_full%' AND (`X12`=\'$net_prefix\' OR `X12`='192.168' OR `X12`='194.67') AND `SPort`='110') GROUP BY `X3`,`X4`,`FromIP`

Код: plaintext
SELECT `Day`,`FromIP`,SUM(`Bytes`),`FromIP` FROM `traffic` WHERE (`Day` LIKE '$cur_date_full%' AND (`FromIP` LIKE \'$net_prefix.%\' OR `FromIP` LIKE '192.168.' OR `FromIP` LIKE '194.67.181.')) GROUP BY `FromIP`

Код: plaintext
SELECT `Day`,`FromIP`,`DPort`,SUM(`Bytes`),`FromIP` FROM `traffic` WHERE (`Day` LIKE '$cur_date_full%' AND (`FromIP` LIKE \'$net_prefix.%\' OR `FromIP` LIKE '192.168.0.%' OR `FromIP` LIKE '194.67.181.%') AND `DPort`='25') GROUP BY `FromIP`

$cur_date_full - это текущий день "2004-06-22", например.
$net_prefix - "10.0".

Ну у к концу месяца всё это на довольно неслабой(P-4 1.7, 512, IDE) машинке начинает выполняться более 30 мин......

Подскажите как-бы мне это всё оптимизировать?
Настройки самого демона уже вылизал дальше некуда..... (IMHO :) )

Да, были ещё индексы такие:
Код: plaintext
1.
  KEY `Day_X1234` (`Day`,`X12`,`X3`,`X4`),
  KEY `Day_FromIP` (`Day`,`FromIP`)
, но помоему с ними ещё больше тормозило.....
...
Рейтинг: 0 / 0
Оптимизация запросов
    #32572780
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
explain давай
...
Рейтинг: 0 / 0
Оптимизация запросов
    #32572814
Tangar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Угум... Вот что-что, а explain мне в голову не пришёл.....
Вообще я сейчас выкрутился подругому, сделал что обрабатывается не вся большая таблица, а сделал доп. табл. на день....
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация запросов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]