通过分页获取用户数据
Fetching user data with pagination
我有一个 user
table 和一个包含用户帖子的子 table Post
。用户有大量的帖子,就像推特帖子一样。
我需要获取 UI 上的用户帖子,当用户向下滚动页面时加载更多帖子,就像 facebook/twitter 那样。我使用休眠作为 ORM 框架 & MySql 作为数据库。我研究了分页,发现了两种主要的实现方式
1. setFirstResult();
setMaxResults();
2. ScrollableResults
我有两个问题
一个。哪种分页方式更适合和有效地实现这一目标?我读到 ScrollableResults 比 setFirstResult 更有效,但它在整个分页过程中保持连接打开。
乙。当加载用户的个人资料页面时 ajax 每次都会触发调用以显示用户的帖子,就像页面中的某些默认内容一样。那么我是否需要实现二级缓存以避免每次页面加载时都命中数据库?
- 如果数据集很大,那么选择 ScrollableResults 将是
更好的。
- 如果用户将以低带宽访问您的应用程序
大多数情况下只会检索第一页或特定页面,比如从 page1 到 page2
然后使用 setFirstResult() 和 setMaxResults()。
我有一个 user
table 和一个包含用户帖子的子 table Post
。用户有大量的帖子,就像推特帖子一样。
我需要获取 UI 上的用户帖子,当用户向下滚动页面时加载更多帖子,就像 facebook/twitter 那样。我使用休眠作为 ORM 框架 & MySql 作为数据库。我研究了分页,发现了两种主要的实现方式
1. setFirstResult();
setMaxResults();
2. ScrollableResults
我有两个问题
一个。哪种分页方式更适合和有效地实现这一目标?我读到 ScrollableResults 比 setFirstResult 更有效,但它在整个分页过程中保持连接打开。
乙。当加载用户的个人资料页面时 ajax 每次都会触发调用以显示用户的帖子,就像页面中的某些默认内容一样。那么我是否需要实现二级缓存以避免每次页面加载时都命中数据库?
- 如果数据集很大,那么选择 ScrollableResults 将是 更好的。
- 如果用户将以低带宽访问您的应用程序 大多数情况下只会检索第一页或特定页面,比如从 page1 到 page2 然后使用 setFirstResult() 和 setMaxResults()。