c - 为数据库等功能编写代码或查找 C 库?

标签 c

几年来,我一直致力于开发一个当前将数据存储在数据库中的系统。对它的需求相当高,有数百万笔交易。

没有需要这样做,但纯粹是为了好玩,我很长一段时间以来一直在想,如果我用 c 编写整个内容,并且编写/阅读,我能做得多快直接从磁盘。我知道这有点疯狂。

所有数据都适合内存,因此最大的问题是以某种方式存储事务日志,以便在系统崩溃时可以重播。

我想知道比我更有 C 经验的人对此有何看法。

最佳答案

如果我正确理解他的问题,我可以看到两个选项:

  1. 您可以查看诸如 SQLite 之类的东西,除了处理磁盘存储之外,它还提供“用 C 编写”和快速执行部分。它是一个基于文件的数据库,速度非常快,并且能够抵御系统/程序崩溃。

  2. 您可以在存储实时副本时将所有数据记录到磁盘,但如果将其存储为 SQL 事务,则它将比同等的原始数据更大。在这种情况下,您需要权衡一下,像 SQLite 这样的东西可能比您手工编码的 RAM 存储方法有更多的处理开销,但由于其原始(非 SQL)存储,写入磁盘的开销可能会更少。

关于c - 为数据库等功能编写代码或查找 C 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10469558/

相关文章:

c - OutputDebugString 输出 "??????"而不是字符串

c++ - 加速大量数组相关计算,visual studio

c - 如何结束我的main函数?

C:使用 printf 等精度说明符分配字符串变量

c - 读取系统调用未检测到文件结尾

c - 如何在 C 中复制数组元素?

c++ - sqlite C\C++ 库是否将 DB 文件保存为内存映射文件?有可能让它这样做吗?

C 段错误(核心转储)

c - msync() 是否只写入更改的页面或完全缓存的缓冲区?

c - 编译器如何为程序分配内存?