powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Проверка IP на принадлежность к четырем уральским областям
14 сообщений из 14, страница 1 из 1
Проверка IP на принадлежность к четырем уральским областям
    #38816832
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача: для имеющегося IP из базы получить ответ принадлежит ли этот IP Свердловской, Челябинской, Тюменской или Пермской области. Много лет пользуемся вот этой базой и сейчас у нас на серверах стоят таблицы:

ip_from, ip_to, location_text

по этим таблицам мы определяем город айпишника

Как сейчас посоветуете изготовить новую таблицу под эту конкретную задачу, чтобы эту конкретную операцию проверки сжать до самой супер-быстрой скорости?
...
Рейтинг: 0 / 0
Проверка IP на принадлежность к четырем уральским областям
    #38816833
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Адрес базы, которой пользуемся: http://ipgeobase.ru/cgi-bin/Archive.cgi
...
Рейтинг: 0 / 0
Проверка IP на принадлежность к четырем уральским областям
    #38816902
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixКак сейчас посоветуете изготовить новую таблицу под эту конкретную задачу, чтобы эту конкретную операцию проверки сжать до самой супер-быстрой скорости?Зависит от требований этой и других задач. Если для этой задачи это очень остро, а другие можно в расчет не принимать, то можно и сделать отдельную таблицу.

А еще у нас есть FAQ: Нахождение записей, где заданное значение находится между значениями полей , в т.ч. 9308178 .
...
Рейтинг: 0 / 0
Проверка IP на принадлежность к четырем уральским областям
    #38817012
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftLumixКак сейчас посоветуете изготовить новую таблицу под эту конкретную задачу, чтобы эту конкретную операцию проверки сжать до самой супер-быстрой скорости?Зависит от требований этой и других задач. Если для этой задачи это очень остро, а другие можно в расчет не принимать, то можно и сделать отдельную таблицу.

А еще у нас есть FAQ: Нахождение записей, где заданное значение находится между значениями полей , в т.ч. 9308178 .

наверное я задачу плохо сформулировал, если вы даете ссылку на пример 9308178
моя задача не найти к какому региону принадлежит IP - в такой задаче на выходе всегда строка с именене региона
в моей задаче на выходе всегда либо да, либо нет
и да, эта задача очень критична и мы готовы под неё отдельную таблицу сделать

я только не пойму зачем тут limit 1 и order by
даже если order by и потребуется, то его лучше прошить на стадии create table, потому что порядок никогда не меняется

- - -

приведу пример моей задачи на простых числах

допустим у нас заданы диапазоны чисел и этот набор диапазонов не меняется никогда и задан изначально

Код: sql
1.
2-5, 9-9, 12-12, 19-25, 28-31, 48-55



Задача: максимально быстро определить входит число n в этот диапазон или нет
то есть получить ответ: входит или не входит, да или нет, true or false, 1 или 0
а в какой именно из этих диапазонов оно входит вопрос не стоит вообще
...
Рейтинг: 0 / 0
Проверка IP на принадлежность к четырем уральским областям
    #38817187
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
примерное количество ip известно?
преобразовать диапазон в последовательность , создать из последовательностей таблицу из 1 индекированоого столбца
и проверять впростым where.
...
Рейтинг: 0 / 0
Проверка IP на принадлежность к четырем уральским областям
    #38817188
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ip преобразовывать в число
...
Рейтинг: 0 / 0
Проверка IP на принадлежность к четырем уральским областям
    #38817196
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпреобразовать диапазон в последовательность , создать из последовательностей таблицу из 1 индекированоого столбца
и проверять впростым where.Это можно (и нужно делать) и без преобразования в последовательность. Именно с помощью ORDER BY col1 DESC LIMIT 1.
...
Рейтинг: 0 / 0
Проверка IP на принадлежность к четырем уральским областям
    #38817212
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я думаю, если сделать таблицу (именно из последовательных значений) содержащую только значимые значения и отсортированную
то будет быстрее с одним where
получится
set @find=0
select ip into @find from xx where ip=ip_in

@find> найдено, иначе - нет


без сортировки и лимита
...
Рейтинг: 0 / 0
Проверка IP на принадлежность к четырем уральским областям
    #38817231
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяя думаю, если сделать таблицу (именно из последовательных значений) содержащую только значимые значения и отсортированную
то будет быстрее с одним where
получится
set @find=0
select ip into @find from xx where ip=ip_in

@find> найдено, иначе - нет


без сортировки и лимитаНет, быстрее не будет. Как минимум, из-за резкого увеличения объема индекса. И сортировка с лимитом в моем предложении - именно метод избежать этого.
...
Рейтинг: 0 / 0
Проверка IP на принадлежность к четырем уральским областям
    #38817241
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут не очень много ip - в таблице нужно будет оставить только те которые принадлежат нужным областям.
ну и если уж надо повылить скорость - на хабре я находил методу как индексный файл располагать в ram диске.
...
Рейтинг: 0 / 0
Проверка IP на принадлежность к четырем уральским областям
    #38817281
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадятут не очень много ipДа все равно смысла нет записи множить.вадяна хабре я находил методу как индексный файл располагать в ram диске.В которой так и не смогли аргументировать, чем предлагаемый метод лучше простого увеличения кэша индексов в самом MySQL.
...
Рейтинг: 0 / 0
Проверка IP на принадлежность к четырем уральским областям
    #38817300
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftвадятут не очень много ipДа все равно смысла нет записи множить

тут надо знать конкретные цифры, сравнить...
вадяна хабре я находил методу как индексный файл располагать в ram диске.В которой так и не смогли аргументировать, чем предлагаемый метод лучше простого увеличения кэша индексов в самом MySQL.
тут надо сравнивать с цифрами в руках. там просто работающая рализаци, к сожалению без исследования...
...
Рейтинг: 0 / 0
Проверка IP на принадлежность к четырем уральским областям
    #38817308
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmiksoftпропущено...
Да все равно смысла нет записи множить

тут надо знать конкретные цифры, сравнить...По моему опыту, большинство диапазонов имеет размер от нескольких сотен до нескольких сотен тысяч адресов. Вот во столько раз и вырастет количество записей.
...
Рейтинг: 0 / 0
Проверка IP на принадлежность к четырем уральским областям
    #38817320
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixприведу пример моей задачи на простых числах

допустим у нас заданы диапазоны чисел и этот набор диапазонов не меняется никогда и задан изначально

Код: sql
1.
2-5, 9-9, 12-12, 19-25, 28-31, 48-55




Задача: максимально быстро определить входит число n в этот диапазон или нет
то есть получить ответ: входит или не входит, да или нет, true or false, 1 или 0
а в какой именно из этих диапазонов оно входит вопрос не стоит вообще
Код: sql
1.
2.
3.
4.
SELECT COUNT(*)
FROM
  (SELECT ip_to FROM mytable WHERE :my_ip >= ip_from ORDER BY ip_from DESC LIMIT 1) tt
WHERE :my_ip <= tt.ip_to

Предполагается, что в таблице есть только целевые диапазоны. Если это не так, до нужно добавить условие на попадание в целевой диапазон в последней строке.
Будет нужен индекс по полю ip_from.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Проверка IP на принадлежность к четырем уральским областям
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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