我正在寻找一些用于.net 4的快速嵌入式DB (最好是在内存中)。
我通常的操作非常简单:给定一个大约有50个表和30k行(最大可以是1m)的大表,执行像SELECT AVG(col1) FROM table WHERE col2 IN (?)和col3 IN (?)和col4 < ?,SELECT col1 FROM table WHERE same等。列是字符串或浮点数。
我已经从简单的.net DataTables + LINQ开始了,它们速度很快,但明显受到大小的限制(它在没有内存之前很久就崩溃了)。此外,没有我认为可以提高性能的索引。
然后,我尝试使用SQLite (devart适配器)进行SQL查询,它比内存中的数据表慢10倍。我已经对这个表中的所有列建立了索引,但这没有帮助。我认为SQLite被认为是最快的嵌入式数据库之一,所以它相当令人失望。
有没有快速且可扩展的替代方案?例如,像DataTable这样的索引可能会占用大量内存(例如,我不介意它会占用几it的ram)。
发布于 2011-02-21 18:12:14
内存数据库中支持SQLite,请参阅:http://sqlite.phxsoftware.com/
当您使用它时,您确定是在内存中使用它,而不是从磁盘中使用它吗?
发布于 2013-05-23 01:04:04
我建议你使用STSdb4。它是一个基于WaterfallTree的嵌入式.NET 4.0数据库--一种创新的数据索引结构。STSdb4比基于B树的数据库更快。它在使用顺序和随机键实时索引记录方面提供了惊人的速度。有一个database comparison tool可以帮助你做出决定。
上述基准测试工具包含以下数据库:
的
发布于 2011-02-21 23:01:53
数组怎么样?
定义一个包含50列的类型,将数据加载到数组中,并对其执行LINQ查询。
你在LINQ to Objects中没有索引,但它仍然很快。
https://stackoverflow.com/questions/5064589
复制相似问题