2010-03-02 45 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子句中用作条件的任何字段是索引并且您正在使用简单的'='评估。如果在当前模式中这样做很尴尬,那么将数据拆分为不同的状态可能是值得的。