gpt4 book ai didi

java - 数据获取技术

转载 作者:行者123 更新时间:2023-12-02 06:58:26 24 4
gpt4 key购买 nike

我想要有关从数据库获取数据的建议。例如,我的数据库中有数百万条数据,我想使用某种编程语言在我的网页中将其显示为每页 10 行。

那么最好的办法是什么,

  1. 获取所有数据并进行分页
  2. 或仅获取有限的数据。

由于在第一种数据获取方式中,可能存在数据操作的可能性,例如,如果我汇集所有数据并显示它,并且用户在数据显示后更改了一些详细信息。只需进行一个小小的更改,我就需要再次获取所有数百万数据。
而在第二种数据获取方式中,我需要始终连接数据库才能获取每页 10 行。
请澄清我的疑问

最佳答案

到目前为止,最简单的选择是根据需要获取数据,如 Per's answer 中建议的那样。 。但是,这可能不会产生最佳性能(尽管如果应用程序不是性能关键型的,我就不会再做任何事情了)。

如果您只想显示其中 10 条记录,请勿获取数百万条记录。虽然值得考虑的一个选项(如果您的应用程序对数据具有独占访问权限)是始终加载所有数据,并简单地将数据库更多地用作备份设备,仅在应用程序重新启动时才从中读取数据,但我认为数以百万计对于这个模型来说,行数有点多。

尽管缓存可能是一个不错的选择。 Wikipedia有一个缓存算法列表。我可能会建议最近最少使用。

服务器端缓存通常是一个不错的考虑因素。 危险 - 此处数据结构的低效选择(或缺乏对如何使用应用程序的了解)可能会降低应用程序的性能。

客户端缓存可以提供更快的应用程序响应时间,特别是在存在高延迟的情况下。请记住,每个用户都有他/她自己的缓存 - 这只适用于某些应用程序。

除了常规缓存之外,对于上述任一情况,您都可以加载 10 个所需行周围的 100 行(假设用户通常会转到下一页/上一页,并且此操作实际上是有意义的) )。 100 将是这里可以使用的数字 - 理想的数字很大程度上取决于您的应用程序的使用方式。

以 Stack Overflow 为例,最常见的(选择)查询可能是显示新问题列表。这些都可以缓存(服务器端),因此不需要数据库查询来获取它们。

有用的注释

对于服务器端缓存,如果您的应用程序对数据具有独占访问权限 - 无论何时有任何更改,这些更改都会通过您的应用程序进行,因此您只需修改本地副本或清除缓存即可,无需查询数据库以查看它是否发生变化。

对于客户端缓存,或者如果您的应用程序没有对数据具有独占访问权限 - 您可以在数据库中的某个位置添加版本控制或最后修改的值,您可以查询以检查是否有更新。

关于java - 数据获取技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17003740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com