2010-03-02 16 views
0

我有10個表,其中4個包含高達100萬行。所有的值都被一次插入,之後我只多次讀取數據。我正在尋找一個數據庫,當涉及到選擇,加入或其他閱讀等方面會有很大的性能。數據庫有很好的讀取性能

什麼是最推薦的選項?

+0

目前我使用HSQLDB,內存較小的表。不幸的是,更大的桌子不適合記憶。操作系統是Fedora。 – mscavnicky 2010-03-02 19:16:12

+0

查詢:大多數時候我使用Hibernate加載一個聚合對象。聚合對象包含較大表中的對象列表。 – mscavnicky 2010-03-02 19:19:52

回答

2

如果您添加適當的索引,它並不重要。這裏的數據庫設計可能更重要。

0

根據Stackoverflow的說法,我會簡單地回答「SQLite」,但那本身太短。所以我填補了這個額外的文字。

0

我想你將不得不提供一些更多的細節來得到一個很好的答案。你在尋找什麼樣的性能,以及在什麼硬件/操作系統上?你會做什麼樣的查詢?

對於體面的數據庫服務器來說,一百萬行並不是那麼多。如果你想獲得最佳的檢索性能,如果你有足夠的內存來滿足所有需求,你就需要使用內存表。


我看到你更新了你的問題,說你正在使用HSQLDB和Hibernate。我會冒險猜測你的性能問題更可能是由於Hibernate而不是HSQLDB造成的。

http://en.wikipedia.org/wiki/HSQLDB,表類型的選擇可能會對性能有很大的影響,以及...

0

如果你肯定知道,這將是隻讀的,你可以索引的表更積極。一般來說,索引緩慢寫入並加速讀取。

瞭解您正在使用的RDBMS的性能特徵也是值得的。您將希望避免任何會導致查詢分析器在字段內解析的任何內容 - 即LIKE比較,正則表達式,XML數據類型,子字符串等。

您想確保在WHERE子句中用作條件的任何字段是索引並且您正在使用簡單的'='評估。如果在當前模式中這樣做很尷尬,那麼將數據拆分爲不同的狀態可能是值得的。

相關問題