我查看了 redland 文档,有些问题我无法确定解决。
在 c++ 方面,假设您随着时间的推移为几个不同的图生成大量 rdf 三元组,并且知道将所有图都放在内存中并不感兴趣:
是否可以使用 redland 执行单个/批量插入(写入持久存储)而不将图形保存在内存中,您将如何调整此类插入?
如果我们忘记了查询,那么什么是一种好的持久存储方式:文件还是数据库?
你怎么看?
是否可以使用 redland 执行单个/批量插入(写入持久存储)而不将图形保存在内存中,您将如何调整此类插入?
是的。创建一个librdf_storage
您希望存储数据的对象并将其传递给librdf_new_model()
. 然后使用任何 API 函数,例如librdf_parser_parse_into_model()
将数据存储在该模型中,并将其持久保存在存储中。
仅当 librdf 存储模块以这种方式编写时,该图才会保存在内存中。
如果我们忘记了查询,那么什么是一种好的持久存储方式:文件还是数据库?
file
存储并不是真正用于严肃的业务。它将图形保存在内存中,并通过与 RDF/XML 进行序列化来持久化到磁盘。
使用数据库支持的存储,例如mysql
或 BDB hashes
。