带C ++接口的主内存数据库

时间:2010-03-26 10:27:57

标签: c++ main-memory-database

我正在寻找带有C ++接口的主内存数据库。我正在寻找一个带有编程查询接口的数据库,最好是一个使用本机C ++类型的数据库。例如,SQLLite将查询作为字符串并需要执行解析...这非常耗时。我正在寻找的业务是:

  • 创建能够存储整数类型的任意维度(属性数)的表。
  • 支持插入,删除,选择,投影和(非优先)连接。

3 个答案:

答案 0 :(得分:1)

SQLite的解析时间并不是那么多(您可以通过许多查询分摊它),除非您手动将值替换为SQL查询。用手代替是艰苦的工作,笨拙,缓慢,也可能是不安全的。相反,您应该使用绑定参数,以便您可以更直接地执行操作(有关相关API,请参阅http://www.sqlite.org/c3ref/bind_blob.html)。

请注意,如果切换到其他数据库,则会出现同样的问题;通过使用绑定参数,您只能从任何 SQL系统中获得高速。 (并且考虑不要过多地夸大性能;它存储的位是瓶颈......)

答案 1 :(得分:0)

尝试Boost.MultiIndex

答案 2 :(得分:0)

BerkeleyDB(现在由Oracle拥有)可以将数据完全存储在内存中(尽管它最初是为磁盘存储而设计的)。 TimesTen(现在也归Oracle所有)从一开始就设计用于内存存储。它们都支持SQL和从C,C ++等直接访问的API。