我正在处理每天都在增长的大型数据库。从该数据库中提取所需的数据涉及一些连接,并且由于数据量大,需要的时间太长。有朋友建议如下:
每天一次从这个数据库中提取所有需要的数据并将其写入一个二进制文件,该文件将驻留在您的源代码控制中。接下来,创建一个将针对这个二进制文件工作的 dal 实现,这样事情应该可以顺利进行。
我不熟悉这种方法,我想知道 - 这是一个好习惯吗?这种做法的优缺点是什么,最后有没有关于这种实现的参考(目前我正在使用 JPA)?
提前致谢
我正在处理每天都在增长的大型数据库。从该数据库中提取所需的数据涉及一些连接,并且由于数据量大,需要的时间太长。有朋友建议如下:
每天一次从这个数据库中提取所有需要的数据并将其写入一个二进制文件,该文件将驻留在您的源代码控制中。接下来,创建一个将针对这个二进制文件工作的 dal 实现,这样事情应该可以顺利进行。
我不熟悉这种方法,我想知道 - 这是一个好习惯吗?这种做法的优缺点是什么,最后有没有关于这种实现的参考(目前我正在使用 JPA)?
提前致谢
一些东西,
您可能可以优化查询数据的方式。见,http://java-persistence-performance.blogspot.com/2010/08/batch-fetching-optimizing-object-graph.html
如果您在 JPA(或 EclipseLink)中启用缓存,那么您可以避免查询数据库中的数据。见,http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Caching
您可以将数据存档在数据库中以避免它变得很大。或者对数据进行分区,以便表中只有当前数据。
您可以为当前数据使用本地或内存数据库,或使用 Oracle TimesTen 等产品或 Oracle Coherence 等缓存产品。