我想知道选择二进制dat和使用mysql php api与将GeoLite csv导入mysql数据库和使用数据库有什么巨大的性能差异。
dat格式为20MB,每次都需要从磁盘读取。它将被包括在Magento扩展中,它也将在共享主机服务器上托管的网站上运行。
发布于 2016-11-10 04:32:09
PHP真的很快,我还没有测试过MySQL查找,但我预计它们会慢得多。MySQL的连接速度非常快,但是您仍然需要连接,然后解析和优化查询。
我们做了一些测试,发现Apache扩展、PHP扩展和(令人惊讶的) PHP库都非常快。安装它们时没有真正的性能问题。有关详细信息,请参阅我们的blog post。
发布于 2020-05-15 23:10:30
我同意@preinheimer的观点,即MySQL查找比使用Maxmind mmdb文件要慢。
但是,我确实想指出Maxmind查找是最快的,特别是当您使用C编译的libmaxminddb.so PHP扩展时。事实上,在我的阅读测试中,我比较了MySQL,SQLite和MMDB,MySQL大约慢了3.5倍,SQLite比使用这个扩展的MMDB查找慢了2倍。
当使用纯PHP库时,没有扩展,它比MySQL快,但比SQLite慢3倍。
此外,如果空间是个问题,内存数据库文件比SQLite或MySQL数据库要小得多。我在MySQL服务器上也经历过高负载,在那里查找变得越来越慢,这对于mmdb文件来说不是问题。与使用MySQL相比,读取mmdb文件占用的资源较少。
就资源使用而言,SQLite不存在MySQL问题,因此作为备份选项,它是一个可靠的选择。但是,数据库文件大小可能是一个问题。
https://stackoverflow.com/questions/26505827
复制相似问题