MySQL: Поиск по не точному вхождению.

one

Client
Регистрация
22.09.2015
Сообщения
6 831
Благодарностей
1 275
Баллы
113
Обратил внимание что из прокси чекера шаблон получает кучу дублей проксей, различия только по портам. Создал предложение разработчикам, может добавят в постер фильтр а пока такой вопрос.

Использованные прокси пишу в БД с фиксированием времени использования. Прокси пишется в ячейку в формате protocol://ip:port. Логика работы шаблона следующая. Берем прокси из прокси чекера, смотрим в БД, находим его там, смотрим время, время совпадает с нужным - берем этот прокси. Если условия не совпали, берем следующий прокси.

Так вот, подскажите, как сделать поиск в ячейке по не точному вхождению т.е. по IP?

В данный момент ищу прокси так:

Код:
SELECT * FROM proxy WHERE proxy_name = "{-Variable.PROXY_IP-}"
Но, что бы избавиться от дублей, надо взятый прокси обработать регуляркой, получить его IP и найти по IP запись в БД.

Как вариант писать в БД только IP прокси. Может быть это и проще. В общем какие варианты предложите?
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 586
Благодарностей
1 013
Баллы
113
Обратил внимание что из прокси чекера шаблон получает кучу дублей проксей, различия только по портам. Создал предложение разработчикам, может добавят в постер фильтр а пока такой вопрос.

Использованные прокси пишу в БД с фиксированием времени использования. Прокси пишется в ячейку в формате protocol://ip:port. Логика работы шаблона следующая. Берем прокси из прокси чекера, смотрим в БД, находим его там, смотрим время, время совпадает с нужным - берем этот прокси. Если условия не совпали, берем следующий прокси.

Так вот, подскажите, как сделать поиск в ячейке по не точному вхождению т.е. по IP?

В данный момент ищу прокси так:

Код:
SELECT * FROM proxy WHERE proxy_name = "{-Variable.PROXY_IP-}"
Но, что бы избавиться от дублей, надо взятый прокси обработать регуляркой, получить его IP и найти по IP запись в БД.

Как вариант писать в БД только IP прокси. Может быть это и проще. В общем какие варианты предложите?
SELECT * FROM proxy WHERE proxy_name like "{-Variable.PROXY_IP-}%"
или если и начало отличается то
SELECT * FROM proxy WHERE proxy_name like "%{-Variable.PROXY_IP-}%"

если их ооооооооочень много быстрее всего будет перевести ip из строки в число и искать по этому числу :-)
 
  • Спасибо
Реакции: one

one

Client
Регистрация
22.09.2015
Сообщения
6 831
Благодарностей
1 275
Баллы
113
SELECT * FROM proxy WHERE proxy_name like "{-Variable.PROXY_IP-}%"
или если и начало отличается то
SELECT * FROM proxy WHERE proxy_name like "%{-Variable.PROXY_IP-}%"
Во! Спасибо мил человек! То что надо! Здоровья тебе, твоей семье и близким до конца дней этого мира!
если их ооооооооочень много быстрее всего будет перевести ip из строки в число и искать по этому числу
В смысле в число?
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 586
Благодарностей
1 013
Баллы
113
В смысле в число?
http://wb0.ru/ipcalc.php
127.0.0.1
в десятичных - 2130706433 а по int mysql ищет в тысячи раз быстрее и места они занимаю меньше...
просто была такая задача в таблице условно 1млн записей и легко могла быть 10млн и она начинала тупить само собой... вот такое нехитрое преобразование ускорило всё в разы :-)
Но это не критично если у тебя там их не миллионы...
 
  • Спасибо
Реакции: esouldy и one

one

Client
Регистрация
22.09.2015
Сообщения
6 831
Благодарностей
1 275
Баллы
113
А, понял, спасибо! Буду иметь в виду. Пока в БД тысячи проксей, до миллионов думаю не дойду, хотя... фик знает.
 

Кто просматривает тему: (Всего: 3, Пользователи: 0, Гости: 3)