2012-03-26 90 views
0

我目前正在使用嵌入式sqlite存儲相對較大的數據列表(從每個表100'000行開始)。查詢只包括:sqlite替代巨大的數據列表?

  • 尋呼
  • 排序由現場

金額數據的一列相對較小。性能非常糟糕,特別是對於第一個查詢,這對我的應用程序至關重要。各種調音和預緩存已經嘗試並達到了實際的極限。

是否有任何替代嵌入式數據存儲庫,可以以非常快速和有效的方式做這些簡單的查詢? Theres沒有要求它支持SQL。

+0

您是否嘗試過分裂您的表?處理它們可能會變得笨重,但在某些情況下它可以工作,並且如果它確實提供了改進的性能,則存在危險。 – halfer 2012-03-26 10:40:59

+0

是的,實際上他們分裂他們最小行數從數百萬到數十萬,這仍然是非常緩慢:( – 2012-03-26 10:46:52

+0

我想創建一個鬼桌只包含大集只有「頭」,所以我可以但是這只是在sqlite上建立了另一個解決方法:( – 2012-03-26 10:48:14

回答

0

如果是(主要是)只讀,請考慮使用文件的內存映射視圖。

這將有可能實現最大的性能滾動你自己的指標。

很明顯,它也是工作量最大,容易出錯的問題。

我可以推薦一個傳統的RDBMS,它具有良好的索引或者可能是一個支持您的工作負載的新穎的無SQL樣式的數據庫?

+0

數據正在發生變化,但速度很慢但很常見:(像MySQL這樣的傳統SQL服務器將非常適合,但是這超出了嵌入式應用程序的範圍,並會導致很多額外的部署問題:(我應該看看這些nosql dbs ,謝謝。 – 2012-03-26 10:44:41

0

你可以嘗試lucene.net,它速度快,不需要任何安裝,支持按字段分頁和排序等等。 http://incubator.apache.org/lucene.net/

用簡單的Lucene的包裝,也很容易使用:http://blogs.planetcloud.co.uk/mygreatdiscovery/post/SimpleLucene-e28093-Lucenenet-made-easy.aspx

+0

+1我應該嘗試Lucene這些天之一 – sehe 2012-03-26 10:40:41

+0

Lucene不能很好地處理到100萬列表的最後一頁,很好,它的主要用途是全文搜索我很害怕 – 2012-03-26 10:41:05

+0

它的索引被實現應該允許它在一般情況下比RDBMS更快地分頁結果,是的,它用於全文搜索,但是這並不妨礙將它用作持久層(如果你有數百萬行,很確定搜索應該爲你手忙腳亂:)。 – Giedrius 2012-03-26 10:47:02