我需要实现这个功能,我需要从oracle数据库以升序或降序方式(以及其他客户数据)显示客户名称。
X
至A
)或重复名称((如果名称已更新为A
至Z
)),如果我提取第2步中的索引记录首先考虑显示的记录名称是Z
到X
。
如何在不跳过或重复的情况下显示正确的记录?
我能想到的一种方法是获取内存中的所有记录ID(在Web服务器内存或游标内存中),将其存储为临时结果,然后从那里返回数据而不是真实数据。但如果我有百万记录athen它将加载在内存上的webserver或DB内存。
什么是最佳方法以及其他网站如何处理这种情况?
答案 0 :(得分:0)
如果您真的希望每个用户查看表数据的固定快照,那么您将不得不在幕后进行一些缓存。如果在请求第2页时,有几条新记录登陆到第1页,那么你会对将会发生的事情有一个有效的关注,从而导致在第2页再次查看相同的信息。好吧,扮演魔鬼的拥护者,我可以还认为用户可能还在查看已删除但不再存在的记录。就用户体验而言,这可能同样糟糕。
我经常看到处理这个问题的方法是为每个页面做一个新的查询。由于您使用的是Oracle,因此可能会使用OFFSET
和FETCH
。可能存在重复/丢失记录问题,但除非您的数据变化非常快,否则可能是次要问题。