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




MySQL.RU - Webboard



Вернуться
Как оптимизировать цикл с UPDATE (skipper) 31/08/2008 - 15:39:11



From: skipper - 31/08/2008 - 15:39:11
Subject:Как оптимизировать цикл с UPDATE
-----------------
Помогите решить задачу на оптимизацию!
Есть БД на 4 млн. записей. Каждая запись соотвествует TCP сегменту. У каждой записи есть поля IPsrc, IPdst, TCPsrc, TCPdst и TCP_session_id (проиндексированное). Последнее по умолчанию равно 0. IPsrc и IPdst - это поля хранящие значение IP адреса в формате int(4), TCPscr и TCPdst - хранят значения портов int(2). IPsrc+TCPsrc (индекс.) составляют SocketA, IPdst+TCPdst (индекс.) составляют SocketB. Уникальное сочетание сокетов в записи A-B и B-A составляю уникальный номер сессии.
Задача по сочетаниям сокетов пронумеровать tcp_session_id.
Я решаю задачу следующим алгоритмом:

1. start loop i = 1, i++
2. select * from ... where tcp_sesion_id = 0 limit 1
3. update ... set tcp_sesion_id = $i ((IPsrc = 'res_col[1]' and TCPsrc = 'res_col[3]' and IPdst = 'res_col[2]' and TCPdst='res_col[4]') or (IPsrc = 'res_col[2]' and TCPsrc = 'res_col[4]' and IPdst = 'res_col[1]' and TCPdst='res_col[2]'))
3. loop

Но мне почему-то кажется, что это не потимальный способ
Может, подскажите что-нибудь...


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

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

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



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