我想知道选择二进制数据并使用MaxMind php api与将GeoLite csv导入mysql数据库并使用数据库是否存在巨大的性能差异。
dat格式为20 MB,每次都需要从磁盘读取。它将包含在Magento扩展中,它也将在共享主机服务器上托管的站点上运行。
答案 0 :(得分:0)
PHP API非常快,我还没有测试MySQL查找,但我希望它们的速度要慢得多。 MySQL的连接速度非常快,但你仍然可以连接和解析&优化查询。
我们做了一些测试,发现Apache扩展,PHP扩展和(令人惊讶的)PHP库非常快。安装它们时没有真正的性能。详细信息可在我们的blog post中找到。
答案 1 :(得分:0)
我同意@preinheimer的观点,即MySQL查找比使用Maxmind mmdb文件要慢。
但是,我确实要指出,当您使用C编译的libmaxminddb.so PHP扩展时,Maxmind查找最快。实际上,在我的读取测试中,我比较了MySQL,SQLite和MMDB,与使用扩展名的MMDB查找相比,MySQL慢了3.5倍,而SQLite慢了2倍。
使用纯PHP库(不带扩展名)时,它比MySQL快,但比SQLite慢(大约3倍)。
此外,如果需要考虑空间,则MMDB文件比SQLite或MySQL数据库小得多。我还经历了MySQL服务器上的高负载,那里的查找变得越来越慢,这与mmdb文件无关。与使用MySQL相比,读取mmdb文件的资源占用较少。
就资源使用而言,SQLite没有MySQL问题,因此作为备份选项,它是一个可靠的选择。但是,数据库文件的大小可能是个问题。