Q:批量写入SequoiaDB用什么api ?
A: bulkInsert(com.sequoiadb.base.DBCollection.bulkInsert)
请问一下这个功能在C++程序里面是怎么用的?
bulkInsert接口第一个参数是flag填0表示当批插进数据库的记录的_id有重复时,批插将报错返回(即不忽略错误),当填FLg_INSERT_CONTONDUP宏时,表示将忽略这条记录继续往下批插(即忽略错误)。第二个参数是一个vector,楼主应该知道怎么构建BSONObject的vector吧?关于构建C++ bson,可以参考/opt/sequoiadb/client/sample/CPP中的例子,或者参考这里:http://www.sequoiadb.com/cn/index.php?a=index&m=Files&cat_id=1432190579&edition_id=0
感谢赐教,我先试一下
再请教一个问题,我现在的确可以使用bulkInsert实现批量插入BSONObject的vector,但是在实际应用中我的程序往往需要一次写入10万条左右的数据,所以构造vector的时间花销比较大,相比之下,我每一次写一条的速度反而更快,请问有什么方法可以支持这个数据量的快速插入呢?
1、适当减少每批插入的数据量,大概每批12M左右,你可以根据自己每条记录的大小,大致算一下,每批需要发多少条。
2、多线程并发批插(需要注意一个CPP驱动不是线程安全的)。