Сравнение производительности MaxMind GeoLite mysql и двоичных данных

Мне интересно, есть ли огромная разница в производительности при выборе двоичных данных и использовании MaxMind php api по сравнению с импортом GeoLite csv в базу данных mysql и использованием базы данных.

dat имеет размер 20 МБ, и его необходимо каждый раз считывать с диска. Он будет включен в расширение Magento и будет работать также на сайтах, размещенных на общих серверах.


person JohnyFree    schedule 22.10.2014    source источник
comment
Это хороший вопрос... я собираюсь либо установить версию mysql, либо запустить файл .dat... возможно, пойдет mysql...   -  person Michael Fever    schedule 06.02.2015


Ответы (2)


PHP API работает очень быстро, я не тестировал запросы MySQL, но ожидаю, что они будут работать намного медленнее. MySQL удивительно быстро подключается, но вы все еще подключаетесь, а затем анализируете и оптимизируете запрос.

Мы провели небольшое тестирование и обнаружили, что расширение Apache, расширение PHP и (на удивление) библиотека PHP работают очень быстро. Никакого реального удара по производительности при их установке. Подробности доступны в нашем сообщении в блоге.

person preinheimer    schedule 09.11.2016

Я согласен с @preinheimer в том, что поиск в MySQL выполняется медленнее, чем при использовании файла Maxmind mmdb.

Тем не менее, я хочу отметить, что поиск Maxmind работает быстрее всего, особенно когда вы используете PHP-расширение libmaxminddb.so, скомпилированное на C. Фактически, в моих тестах на чтение я сравнивал MySQL, SQLite и MMDB, и MySQL был примерно в 3,5 раза медленнее, а SQLite был почти в 2 раза медленнее по сравнению с поиском MMDB с использованием расширения.

При использовании чистой библиотеки PHP без расширения работает быстрее, чем MySQL, но медленнее, чем SQLite (примерно в 3 раза).

Кроме того, файлы MMDB значительно меньше, чем базы данных SQLite или MySQL, если вам не хватает места. Я также испытал высокую нагрузку на сервер MySQL, где поиск становился все медленнее, что не является проблемой для файла mmdb. Чтение файла mmdb требует меньше ресурсов, чем использование MySQL.

SQLite не имеет проблем с MySQL в отношении использования ресурсов, поэтому в качестве резервного варианта это надежный вариант. Однако размер файла базы данных может быть проблемой.

person hndcrftd    schedule 15.05.2020