32位下php操作berkeleydb

        php可以通过dba_open系列函数直接操作4.x版本的berkeleydb数据文件。昨天发现在dba_insert的时候php报出了 Segmentation fault 的错误,当时bdb文件已经3G多了。先怀疑是bdb有大小限制,可我们用的是64位系统啊。于是改用c来操作bdb,写了11G的bdb文件都没有问题,最后才确认:装的php是32位下编译的php,它能顺利的在64位系统下直接运行,但写库就不能太大了,理论上来说不能超过4G,至于为什么3G就不行了,可能bdb的寻址有特殊要求吧。
        解决这个问题也很简单,按key哈希开,分成16个bdb来存数据,这样单个文件就不会超过3G了。


相关文章

分类

留言:

关于文章

This page contains a single entry by DongHao published on 12 29, 2007 11:07 AM.

廉颇老矣? was the previous entry in this blog.

《红色帝国》 序 is the next entry in this blog.

Find recent content on the main index or look in the 存档 to find all content.