Pull to refresh
65
0
Send message
Нерационально. Дыр много, затыкание каждой приведет к большим накладным расходам.
А как без них?

На примере, для чего нужна вторая проверка
IP 89.218.220.231 (Казахстан)
Запрос
select * from (select * from net_ru where begin_ip<=1507515623 order by begin_ip desc limit 1) as t where end_ip>=1507515623
ничего не возвращает, потому что IP нет в российских диапазонах
А если убрать второе условие, то вернется соседний диапазон и будет сделан неверный вывод, что IP из Москвы
Диапазоны не пересекаются, но есть «дыры», пустоты между диапазонами, в которые может попасть (и даже часто попадает) первое условие. Без второй проверки в такой ситуации запрос вернет соседний диапазон, что не правильно.
Можно реализовать вторую проверку на стороне скрипта (php и т.п.), но я решил оставить эту логику в sql.
Например, так и сделано

select * from (select * from net_ru where begin_ip<=$int order by begin_ip desc limit 1) as t where end_ip>=$int

Ключ по begin_ip (в прошлой версии было иначе)
PHP с большими файлами работает относительно медленно, а на Perl я так и не подсел, поэтому с бинарниками помочь не смогу.
На моем VPS запросы к базе отрабатывают быстро (Apache создает гораздо большую нагрузку). Но размер базы (и особенно индекса) немаленький, на виртуальном хостинге таких клиентов не любят. Вы можете попробовать её на виртуальном хостинге, но потом не говорите, что я вас не предупредил.
На досуге посмотрю базу по вашей ссылке, но не верю, что города всего мира можно уместить в 4 метра.
В базе maxmind Украина представлена слабо. Если подскажете аналог ipgeobase.ru для украинских IP-адресов, то постараюсь исправить ситуацию.
Работает из коробки и работает быстро (если индекс базы умещается в key_buffer).
«Родной» язык — это какой?
Исправлена ошибка в базе «Страны и города», файл обновлён.
API обсуждалось в предыдущем топике. Где бы взять сервер с безлимитным каналом?
За ссылку спасибо.
Увы, Вы правы. Обнаружились новые диапазоны российских ip (в основном Москва и Питер), которых не было в базе на момент сборки. После НГ сделаю обновление.
По совпадению названий городов и (в случае тезок) регионов. Российские диапазоны в отдельной таблице. Справочник городов общий.
Таки в предыдущем топике и в личном сообщении я просил Вас показать правильное (на Ваш взгляд) решение проблемы с индексами. А в ответ тишина. Критиковать – это мы все умеем.
Безусловно. Вижу в логе неудачных проверок несколько московских и питерских диапазонов, которых не было в базе ipgeobase.ru два дня назад.
Планирую делать периодические обновления.
+1
Либо обман, либо путают среднюю месячную зарплату со средней стоимостью проекта.
По поводу сборщика мусора и увеличения скорости — есть результаты исследования на реальных задачах? Не сомневаюсь, что на синтетических тестах всё красиво, но в жизни обычно всё не так.

Неймспейсы — это интересно, не знал.

Чем тернарный оператор в 5.3 отличается от аналогичного в 5.2?

В свое время PHP подкупил меня своей простотой и доступностью. Вполне рабочий код можно писать без каких-то сложных архитектурных изысков, с помощью десятка функций. Жаль, это время уходит.

В двух словах, чем он так хорош?
Я вижу только недостатки:
— из-за «устаревших» функций будут проблемы со старым кодом
— из-за goto будет больше говнокода
Задним умом мы все молодцы. И не факт, что такая покупка в 2007 пошла бы на пользу facebook и microsoft.
Объясните, в чём сложность поменять ссылки на "./files/images/bg.png"? Вижу, что ни один браузер не может этого сделать, но почему?

Я не понимаю мании Оперы к переименованию файлов. Конечно, файлы из неопределенного числа папок складываются в одну папку и поэтому нужно следить за уникальностью имен файлов. Но файл style.css всего один, зачем переименовывать его в style000.css?
Сообщение отправилось с 7-й попытки и задуплилось. Предпросмотр не работает. Что-то с Хабром не то.
Жаль, нельзя удалить.
> CSS и PNG аккуратно сложены в отдельной папке. Придраться не к чему.

Если закрыть глаза на то, что поменялись имена файлов и структура (вложенность) папок. Зачем она это делает?

Information

Rating
Does not participate
Registered
Activity