我有一张包含大约10.000条记录的表格(加上11个表格中的详细数据)。我想以可浏览的形式显示数据(第1个,上一个和下一个,最后一个按钮)。
我考虑过检索所有记录,将数据放入业务对象集合并将表单绑定到集合。考虑到这一点,我想到它可能需要一段时间,并可能导致大量的内存被使用...
所以也许我应该只检索第一条记录并在请求时获取下一条记录?你觉得怎么样?
答案 0 :(得分:1)
如果您没有使用像nHibernate或iBatis这样的OR / M,请让我现在就提出建议。我使用nHibernate - 但我听说iBatis很棒。它们具有内置和可配置的批处理和延迟加载。此外,下次出现这种情况时,由于预先建立了灵活的数据访问层,您将在几分钟内获得此功能。
如果您不打算使用OR / M的路线,我会建议逐个提取,直到性能成为一个问题 - 为什么不必要地提前复杂化?如果性能成为问题,那么请考虑批量提取和缓存。
答案 1 :(得分:0)
如果数据经常使用,但不经常更改,您可以考虑在应用程序级别缓存它。如果你在表单级别检索数据,速度和内存消耗之间的一个可能很好的折衷是获得例如11条记录(当前,5条前一条和下一条5条),如果用户超过检索到的记录,则再次获得5条记录等。