1

我将 displaytag 用于分页目的。

现在从数据库中,我有数百万条记录,从另一页转到一条记录,这需要相当长的时间。

有没有一种方法可以缓存需要显示的对象,以便在页面之间遍历更快。

需求:我们是在Linux环境下查询和显示目录下的文件数。每个文件夹都有数千个文件..

4

1 回答 1

1

您对 DB 的阅读情况如何?很高兴从您的实施中看到更多内容。

作为一般准则:

  1. 如果您将所有数据从数据库中读取到列表中并且只显示一个页面,那么您将浪费资源(处理和内存)。这可能会杀死您的应用程序。尝试一种只适用于您需要的页面的方法。
  2. 如果您使用的是 Hibernate 之类的框架,则可以轻松实现缓存和分页。
  3. 如果您使用直接 JDBC,则必须限制查询中的寄存器。此处正确的技术可能取决于您使用的数据库引擎。请提供此信息。
  4. 请注意,您的问题可能是读取信息量而不是缓存问题(仅取决于实现)。

作为示例,在 Oracle 中,您需要知道页面和页面大小。使用这两者,您可以使用“where rownum < pagesize * page”(或类似的内容,具体取决于您的索引方式,并使用Resultset的absolute(int)方法导航到您需要的第一个寄存器。在其他引擎上它可能更有效率。

现在,如果您使用某些框架进行分页,通常它们支持“DataProvider”的某些实现,因此您可以控制如何获取每个页面的结果。

于 2013-05-29T11:17:55.090 回答