скорость работы с базой данных

SLPT

Новичок
скорость работы с базой данных

Имееться база данных с 100 000 диапазонами ip и соответствующими им странами.
И есть файл с 1000 ip.
Пускаю цикл проверки каждого ip до диапазону.
Скрипт выполняется 15 мин.

Возможно ли как-то это реализовать быстрее?! Скорость очень важна.


Извените плз. Чуток не туда.. переместите куда нужно!
 

Necromant

Новичок
Где в этом посте указана эта информация: БД , версия БД, структура таблиц , ключи в таблице, сам завррос, explain seclect ?
 

SelenIT

IT-лунатик :)
Как минимум:
1) работать с IP в числовом виде;
2) оба поля с IP (начало и конец диапазона) должны быть индексированы, и индексы должны реально работать.
 

Popoff

popoff.donetsk.ua
Можно попробовать прикрутить это:
http://dev.mysql.com/doc/refman/5.0/en/spatial-extensions.html
в частности потому, что там есть r-tree индексы, необходимые для поиска интервалов:
http://dev.mysql.com/doc/refman/5.0/en/creating-spatial-indexes.html
 

Falc

Новичок
SelenIT
>>2) оба поля с IP (начало и конец диапазона) должны быть индексированы, и индексы должны реально работать.

Это лишнее, неплохое быстродействие будет, если сделать индекс по адресу сети.
 

AnToXa

prodigy-одаренный ребенок
лучше бы поюзать patricia trie based стрктуры.
в перле есть модуль для таких дел: http://www.opennet.ru/prog/info/1269.shtml

думаю, даже если загрузить все эти 100K записей в память из базы или откуда там еще, буддет быстрее чем в базе проверять по одному.
 

Navarro

Новичок
Как минимум прочитать про междоменную маршрутизацию и классы сетей.

Если взять самое грубое из грубых представлений, то 32 * 255, ну никак 100000 не получиться.
 
Сверху