C#操作Sqlite内存数据库的困扰
0
最佳答案
0
用特定的连接字符串就行了。 Data Source=:memory:;Version=3;
然后不关闭连接,就可以使用该内存数据库了。关闭后,内存数据库就没了。只能重新开连接。 为了保持连接,可以使用static SqliteConnection @飞扬Design: var conMemory=new SqliteConnection("");//内存数据库连接 var conFile=new SqliteConnection("");//文件数据库连接 //然后读取conFile下的每个表的数据,批量写入到conMemory中 var tableNames=new[]{"table1,"table2"}; foreach(var tableName in tableNames) { //开启事务 this.InsertData(conMemory,conFile,tableName);//读取conFile下的tablaName表的数据,写入到conMemory中,大概思路就是这样。我暂时没找到更快速的直接附加方式,呵呵。 }
其他回答(1)
0
查询效率,好几个方面影响。不单单是文件、或者内存存储影响。而且我认为.sqlite.只要不是单表几十万的数据量,影响不会太大。 首先从应用和设计上去优化一下,应用索引、关联、试图、数据建模要关注单标数据量的分切。 其次、编码层面的优化,注意编码中性能的损耗。比如.避免全表扫描、查询最好应用索引字段等. 最后,在使用sqlite、和代码编写层次没有太大的改观的情况下,尝试内存存储。 |
|