Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaEE处理大量数据_Java_Mysql_Sql Server_Database_Oracle - Fatal编程技术网

使用JavaEE处理大量数据

使用JavaEE处理大量数据,java,mysql,sql-server,database,oracle,Java,Mysql,Sql Server,Database,Oracle,我们有一个支持Oracle、MySQL和SQL Server供应商的JavaEE应用程序。 我们使用一个视图模型来查看从数据库中获取的数据,在DAO模型中也使用分页,到目前为止,这种方法工作得很好,但现在我们使用的记录有数百万条,比如1000万条,这给我们带来了一个大问题,因为我们的应用程序性能问题变得非常糟糕。经过一些调查,我们发现查询中的order by导致数据库级别的速度大大减慢,但我们仍然必须使用它 问题是:是否有任何技术能够以良好的性能处理这些数据量(响应时间和内存问题)?如果您经常使

我们有一个支持Oracle、MySQL和SQL Server供应商的JavaEE应用程序。 我们使用一个视图模型来查看从数据库中获取的数据,在DAO模型中也使用分页,到目前为止,这种方法工作得很好,但现在我们使用的记录有数百万条,比如1000万条,这给我们带来了一个大问题,因为我们的应用程序性能问题变得非常糟糕。经过一些调查,我们发现查询中的order by导致数据库级别的速度大大减慢,但我们仍然必须使用它


问题是:是否有任何技术能够以良好的性能处理这些数据量(响应时间和内存问题)?

如果您经常使用
orderby
子句,您应该在您的排序依据字段上创建一个索引。这将极大地提高订购性能(但当然会略微降低插入速度)。

有很多,大多数都不适合您的情况。这远远超出了SO的范围。我建议。嗨,Michal Borek,谢谢你的回答。我们平均有一个25-30列,其中至少有32个外键(子表),为所有这些列执行索引是否有害。32个外键和一个1000万行表,听起来有些重构可能会有所帮助too@JUBA我认为你必须平衡索引的数量,把它们放在你最常排序的地方。您还可以将它与缓存结合起来,因为我想某些查询的调用频率比其他查询的要高。