おまけ話として、mdbmはLinear Hashingと呼ばれるハッシュアルゴリズムの影響を強く受けています。 Linear Hashingの詳細はwikipediaをご覧ください。 http://en.wikipedia.org/wiki/Linear_hashing このアルゴリズムによりmdbmは、扱うデータサイズが大きくなれば、動的にHashTableを拡大することができる非常に便利な特性を持っています。 しかし、冷静になって考えてみてみましょう。このLinear Hasingの管理用のテーブルを走査する計算コストは可能なら避けるべきです。 mdbmをはじめ、多くのKVSでは最終的なデータのサイズの予想がつくのであれば、あらかじめ大きめのサイズでデータベースファイルを作成する方が好ましいでしょう。 この辺の話に興味がありましたら、コードの「hashval_to_pagenum()」
![細かすぎて伝わらないmdbm](https://cdn-ak-scissors.b.st-hatena.com/image/square/2cb9b7dcee1a15e71116fec2a38be51c48db0bf5/height=288;version=1;width=512/https%3A%2F%2Fs.yimg.jp%2Fimages%2Ftecblog%2F2014-1H%2Fmdbm-min.png)