我目前正在使用嵌入式sqlite存储相对较大的数据列表(从每个表100'000行开始)。查询只包括:sqlite替代巨大的数据列表?
- 寻呼
- 排序由现场
金额数据的一列相对较小。性能非常糟糕,特别是对于第一个查询,这对我的应用程序至关重要。各种调音和预缓存已经尝试并达到了实际的极限。
是否有任何替代嵌入式数据存储库,可以以非常快速和有效的方式做这些简单的查询? Theres没有要求它支持SQL。
我目前正在使用嵌入式sqlite存储相对较大的数据列表(从每个表100'000行开始)。查询只包括:sqlite替代巨大的数据列表?
金额数据的一列相对较小。性能非常糟糕,特别是对于第一个查询,这对我的应用程序至关重要。各种调音和预缓存已经尝试并达到了实际的极限。
是否有任何替代嵌入式数据存储库,可以以非常快速和有效的方式做这些简单的查询? Theres没有要求它支持SQL。
如果是(主要是)只读,请考虑使用文件的内存映射视图。
这将有可能实现最大的性能滚动你自己的指标。
很明显,它也是工作量最大,容易出错的问题。
我可以推荐一个传统的RDBMS,它具有良好的索引或者可能是一个支持您的工作负载的新颖的无SQL样式的数据库?
数据正在发生变化,但速度很慢但很常见:(像MySQL这样的传统SQL服务器将非常适合,但是这超出了嵌入式应用程序的范围,并会导致很多额外的部署问题:(我应该看看这些nosql dbs ,谢谢。 – 2012-03-26 10:44:41
你可以尝试lucene.net,它速度快,不需要任何安装,支持按字段分页和排序等等。 http://incubator.apache.org/lucene.net/
用简单的Lucene的包装,也很容易使用:http://blogs.planetcloud.co.uk/mygreatdiscovery/post/SimpleLucene-e28093-Lucenenet-made-easy.aspx
您是否尝试过分裂您的表?处理它们可能会变得笨重,但在某些情况下它可以工作,并且如果它确实提供了改进的性能,则存在危险。 – halfer 2012-03-26 10:40:59
是的,实际上他们分裂他们最小行数从数百万到数十万,这仍然是非常缓慢:( – 2012-03-26 10:46:52
我想创建一个鬼桌只包含大集只有“头”,所以我可以但是这只是在sqlite上建立了另一个解决方法:( – 2012-03-26 10:48:14