工作了,忙了,上一次写博客还是毕业前找工作的那郁闷劲儿,虽然工作不像别人那么光鲜,却到底工作了
时间一久,发现博客里好多人批评我,不改了,错的对的,都是走过的路,没必要去抹掉脚印
言归正传,最近在用berkeley DB,谈谈对他的见闻
开发板上有数据需要记录,数据量也不特别大,数据类型也不特别多,查询条件也就三种,本来计划用文本文件,但是想想也麻烦,需要在文本文件中作需要的位置标记,还不能出点任何差错,麻烦
干脆用数据库,还可以学点新东西
网上说:小型数据库有 berkeley DB和sqlite两种,但是BDB不支持关系型数据库,sqlite支持关系型数据库,我的数据库简单,没有错综复杂的关系,故选用BDB,后来证明,这个举措也不大英明
BDB据说:免费,小巧,嵌入式,速度快
我研究不深,不敢乱讲,不过我发现BDB的版本确实是个大问题,早期的没有API的版本,编译出来的库文件,不过90k,偏偏没有API支持;到5.1版本吧,害死人,1.5M,这还能叫小巧?不知道还能有什么配置能使得他在编译时小上一大截
BDB的下载:http://www.oracle.com/technetwork/database/berkeleydb/downloads/index-082944.html
BDB的编译:http://blog.chinaunix.net/u1/41638/showart_493486.html
这两步走过了,就是API,中文资料不多,只得慢慢看,然后自己写,再次不赘述
这里记录点版本问题:
首先,很老的版本确实好,但是没有API,本模块只安排四天,时间有限,没试过,但是我觉得很好,可以一用
第二,3.0.55版本编译出来大概500多k,但是我按照他的docs里面的API说明写程序,结果在dbenv和db的open中不管我怎么写,总是有segmentation fault,搞得我够呛,那位仁兄如果能搞定,麻烦给份代码
第三,没办法,我只好向4.0.18版本进发,这回很好,dbenv和db的open函数的参量比3.0版本的要少,输入进去,也就对了;但别高兴得太早,我按照 《BDB编译》的说话,用arm-linux-gcc编译通不过,郁闷死;向4.1.25进发,这回行了,编译能通过了,但受环境影响,尚未来得及在开发板上实验,但愿能行
第四,4.6.18版本已经超过1.5M,天啦,对于我想追求小巧来说,简直就是灾难
不管了,项目时间4天,延期完成任务要挨骂的,将就着点吧