gpt4 book ai didi

java - 结果集 TYPE_FORWARD_ONLY 比 TYPE_SCROLL_INSENSITIVE 有什么优势?

转载 作者:行者123 更新时间:2023-11-30 06:47:52 25 4
gpt4 key购买 nike

所以 TYPE_SCROLL_INSENSITIVE 结果集允许我在两个方向上滚动,而 TYPE_FORWARD_ONLY 只允许我向前移动。

既然 TYPE_SCROLL_INSENSITIVE 允许我做 TYPE_FORWARD_ONLY 允许的事情,为什么我还需要 TYPE_FORWARD_ONLY?我认为 TYPE_FORWARD_ONLY 可能在性能方面更好,但我想知道怎么做?

最佳答案

根据我的经验,大多数情况下您只需要从一个方向读取数据。老实说,除了 TYPE_FORWARD_ONLY(测试 JDBC 驱动程序实现时除外),我什至不必使用任何其他东西。我知道它有时用于交互式 GUI 应用程序,提供可编辑的表格 View ,但即使对于那些类型的系统,我仍然会考虑不同的设计。

从一个方向读取结果集有很多优点:

  • 它非常简单,所以大多数数据库系统都支持它,而且速度通常很快
  • 它的开销较小,因为服务器只需要提供一次行,然后就可以忘记它

缺点:

  • 您不能向后滚动或跳转到结果集中的“随机”点(恕我直言,我从来不需要它)
  • 在某些数据库系统或驱动程序上(如 sForSujit 的 - 现在已删除 - 答案所示),需要完全读取仅向前的结果集(或者驱动程序将在关闭时消耗其余部分)

相比之下,滚动结果集的优点基本上是 forward only 的缺点。

然而,可滚动结果集的缺点是:

  • 更多的开销,因为服务器需要“记住”它之前提供的行,或者能够向前滚动/跳转(尽管有一些技巧可以减少开销以换取更多的复杂性)
  • 并非所有数据库系统都支持它,这意味着它可能会被驱动程序“模拟”。这会导致额外的内存和网络开销(因为整个结果集都被提取到内存中)。
  • 根据滚动类型(尤其是类型敏感),可能会逐行获取行,这会增加获取所有数据所需的往返次数(如果确实获取多个数据,则“随机”跳转结果集可能意味着检索到的额外数据未使用就被丢弃了)。

请注意,此列表可能不完整。

关于java - 结果集 TYPE_FORWARD_ONLY 比 TYPE_SCROLL_INSENSITIVE 有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45296898/

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