1

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

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

3 回答 3

1

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

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

于 2010-03-26T10:36:59.687 回答
0

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

于 2010-03-26T10:58:39.187 回答
0

试试Boost.MultiIndex

于 2010-03-26T10:47:17.720 回答