【发布时间】:2010-11-08 11:33:08
【问题描述】:
我们正在尝试将 SQLite 集成到我们的应用程序中,并尝试填充为缓存。我们计划将其用作内存数据库。第一次使用它。我们的应用程序是基于 C++ 的。
我们的应用程序与主数据库交互以获取数据并执行大量操作。这些操作通常与一个非常大的表有关。 我们在 SQLite 中复制了这个表,以下是观察结果:
字段数:60 记录数:1,00,000
随着数据填充的开始,应用程序的内存从 120MB 急剧上升到约 1.4GB。此时我们的应用程序处于空闲状态,没有进行任何重大操作。但通常,一旦操作开始,内存利用率就会上升。现在有了内存数据库中的 SQLite 和如此高的内存使用率,我们认为我们将无法支持这么多记录。
当我在磁盘上创建数据库时,数据库大小总和约为 40MB。但是应用程序的内存使用率仍然很高。
问。这种高使用率是否有原因。所有缓冲区都已被清除,如前所述,DB 不在内存中?
任何帮助将不胜感激。
感谢和问候 萨钦
【问题讨论】:
-
60 个字段听起来像一个电子表格。查看您的数据,看看规范化是否可以为您节省大量空间。
-
听起来你有内存泄漏
-
您怀疑泄漏在哪里?在 SQLite 或我们的应用程序中?在我的应用程序中,结构和缓冲区正在正确清理。