Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Продолжение старого архива (https://www.otvetnemail.ru/prodolzhenie-starogo-arhiva-804/)
-   -   Помогите оптимизировать цикл с UPDATE (https://www.otvetnemail.ru/prodolzhenie-starogo-arhiva-804/pomogite-optimizirovat-cikl-s-update-392574/)

Guest 16.10.2011 16:50

Помогите оптимизировать цикл с 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 Но мне почему-то кажется, что это не потимальный способ:)Может, подскажите что-нибудь...


Часовой пояс GMT, время: 17:13.


© www.otvetnemail.ru - Форум вопросов и ответов.