SQLite:memory:索引仍在写入磁盘
我试图让SQLite在内存中完全运行。我正在使用以下连接字符串:SQLite:memory:索引仍在写入磁盘,sqlite,Sqlite,我试图让SQLite在内存中完全运行。我正在使用以下连接字符串: var conn=new SQLiteConnection(@“数据源=:内存:;同步=关闭; 日志模式=关闭;缓存大小=10000“; 我在一个事务中写入10000000个插入-这与我预期的速度一样快,并且不会触及磁盘 一旦我开始在表上创建索引,IO就会出现峰值,我可以看到它正在将临时文件写入AppData文件夹 我假设我缺少一个设置/PRAGMA,但我没有找到它。任何帮助都将不胜感激 我进一步修改了设置,增加了页面大小和缓存
var conn=new SQLiteConnection(@“数据源=:内存:;同步=关闭;
日志模式=关闭;缓存大小=10000“;
我在一个事务中写入10000000个插入-这与我预期的速度一样快,并且不会触及磁盘
一旦我开始在表上创建索引,IO就会出现峰值,我可以看到它正在将临时文件写入AppData文件夹
我假设我缺少一个设置/PRAGMA,但我没有找到它。任何帮助都将不胜感激 我进一步修改了设置,增加了页面大小和缓存大小: 我相信当总页数用完时,它开始向临时存储区写入内容。我试图设置temp_store pragma,但没有任何效果-我正在使用的版本可能是为了覆盖该设置而编译的 无论哪种方式,具有更大的页面大小和更高的总页数都允许表和索引保留在内存中
var conn = new SQLiteConnection(@"Data Source=:memory:;Synchronous=OFF;
Journal Mode=OFF;Cache Size=1000000;Page Size=8192;");