我一直在寻找一个C++ SQL库实现,它很容易像SQLite一样挂钩,但速度越来越快.我的项目是在游戏开发中,在需要通过ACID测试和想要一些极端性能之间肯定有一个截止点.我愿意放弃SQL字符串样式查询,允许它被代码驱动,但我没有发现任何提供类似SQL的灵活性,同时也更喜欢性能而不是ACID测试.
我不想重新发明轮子,而且我自己实现一个SQL库的想法非常艰巨,即使它只是你可以做的所有调用的简单子集.
我需要的基本命令(选择,修改,删除,插入,与JOIN,和WHERE),而不是数据操作(如排序,最小值,最大值,计数)和不需要数据库是原子的,或甚至执行一致性(我在测试和调试时可以使用真正的SQL服务.
您确定已获得SQLITE提供的最大速度吗?开箱即用,SQLITE非常安全,但速度很慢.如果您知道自己在做什么,并且愿意冒险在磁盘崩溃时损坏数据库损坏,那么您可以进行多项优化,从而提供惊人的速度提升.
特别是:
关闭同步
组写入事务
索引表
在内存中使用数据库
如果你还没有探索过所有这些,那么你的运行速度可能比你慢很多倍.
我不确定你能找到比SQL更好的表现.特别是如果你想要像JOIN这样的操作...... SQLite的速度真的有问题吗?对于简单的请求,它通常比任何完整的SGDB都快.你有指数问题吗?
关于大小,它不是二进制文件中的事件1Meg,所以我有点惊讶这是一个问题.
您可以查看Berkeley DB,它可能是最快的数据库,但它主要只是key-> value数据库.
如果你真的需要更高的速度,可以考虑将整个数据库加载到内存中(再次使用SQLite).