【发布时间】:2011-10-27 16:51:15
【问题描述】:
我正在尝试在我的应用程序中使用 sqlite 作为一种缓存。我之所以这么说,是因为我的缓存中的项目永远不会过期,而且我没有存储任何东西。我只需要使用缓存来存储我之前处理的所有 id。我不想处理任何事情两次。
我以 10,000 条消息/秒的速度将项目输入缓存,总共 1.5 亿条消息。我的表很简单。它只有一个存储 id 的文本列。我使用字典在内存中完成这一切,但是,我正在处理数百万条消息,虽然这样很快,但一段时间后内存不足。
我研究了 sqlite 和性能,并且我知道配置是关键,但是,我仍然在插入方面获得可怕的性能(我还没有尝试过选择)。我什至无法跟上每秒 5000 次插入的速度。也许这是最好的。
我的连接字符串如下:
Data Source=filename;Version=3;Count Changes=off;Journal Mode=off;
Pooling=true;Cache Size=10000;Page Size=4096;Synchronous=off
感谢您提供的任何帮助!
【问题讨论】: