如何在不改动数据的情况下让 MMDB 文件缩小三分之一

How we made our MMDB files a 33% smaller

我们曾承诺解释如何让数据库文件缩小 80%,现在兑现了。通过开源工具 mmdbshrink,我们在不压缩数据、不改变格式的前提下,将 MMDB 文件体积减少了 31%,部分文件甚至缩小了 80%。核心在于利用 Hash-consing 技术去除了搜索树中的重复子树。由于互联网地址空间的重复性,许多子树结构完全相同,标准写入器却重复存储了它们。我们的方法将这些重复节点合并,生成更小的标准 MMDB 文件,所有现有读取器均可无缝兼容。这不仅节省了存储空间和内存占用,还略微提升了查询速度。该工具已开源,我们建议所有构建 MMDB 文件的开发者尝试使用。

节省是真实的,无论是在静态存储、网络传输还是内存中,因为 MMDB 文件是内存映射的,文件大小即内存占用。

同日更多故事

2026-10-29