将 maxmind mmbd 作为 hashmap 加载到内存中的性能差异

Posted

技术标签:

【中文标题】将 maxmind mmbd 作为 hashmap 加载到内存中的性能差异【英文标题】:Performance difference on loading maxmind mmbd into memory as a hashmap 【发布时间】:2018-07-02 12:35:58 【问题描述】:

我正在使用 GeoIP2 mmdb 文件实时查找用户的位置。但是,我希望将文件加载到内存中,然后在 hashmap 上查询,而不是每次都在数据库上查询。

这样可以吗?如果是,怎么会。

另外,将整个文件加载到哈希图中会提高我的查询性能吗?

【问题讨论】:

【参考方案1】:

我认为这是不可能的。 IP 地址和位置不像散列那样在 1-1 引用中。数据库位于 IP 地址范围内,您需要查询两列才能找到确切位置。 Hashmap 不是一个合适的结构。

【讨论】:

您介意详细说明一下 mmdb 数据库中的数据结构吗?

以上是关于将 maxmind mmbd 作为 hashmap 加载到内存中的性能差异的主要内容,如果未能解决你的问题,请参考以下文章

MaxMind:将 GeoIP2 mmdb 加载到内存中以便快速读取

将 MaxMind 的 GeoLite2 导入 MySQL

Rails中如何将MaxMind本地数据、CSV文件导入redis?

MaxMind 免费 GeoLite City DB 不可靠?

将经度和纬度作为Java中HashMap的键

HashMap 和 int 作为键