2013-05-09 88 views
1

我们拥有支持Oracle,MySQL和SQL Server供应商的Java EE应用程序。 我们使用视图模型来查看从数据库获取的数据,也使用DAO模型中的分页,而且目前为止效果很好,但现在我们正在处理数百万条记录,例如1000万,这给我们带来了一个大问题因为我们的应用性能问题变得非常糟糕。经过一些调查后,我们发现查询中的顺序导致数据库级别的缓慢,但我们仍然需要使用它。使用Java EE处理大量数据

现在的问题是:是否有任何技术来处理这种具有良好性能(响应时间和内存问题)的数据量?

+1

有很多,他们大多不会适合您的情况。这超出了SO的界限。我建议http://programmers.stackexchange.com/。 – BevynQ 2013-05-09 07:56:24

回答

2

如果您频繁使用ORDER BY子句,则应在您订购的字段上创建一个索引。这将大大提高订购性能(但当然会稍微放慢插入)。

+0

嗨Michal Borek,谢谢你的回答。 我们有一个25-30列的平均值,至少有32个外键(子表),这对所有这些列执行索引是否有害。 – Salah 2013-05-09 08:11:37

+1

32个外键和一个1000万行表,听起来像一些重构可能也有帮助 – DaveRlz 2013-05-09 11:09:12

+0

@JUBA我认为你必须平衡多少个索引,把它们放在你最经常订购的地方。你也可以将它与高速缓存结合起来,因为我猜想其他一些查询会被更频繁地调用。 – 2013-05-09 11:15:13