我刚刚发现Postgres Java JDBC驱动程序并不真正支持使用流式传输的SCROLL_SENSITIVE
/ SCROLL_INSENSITIVE
模式,而是通过将完整结果集一次性加载到客户端内存中来模拟这些模式。对于具有大结果集的查询,这可能导致意外的大量内存使用,尤其是在像Java这样的语言中,几乎不支持未装箱的值。使用FORWARD_ONLY
模式时,驱动程序会按预期方式传输结果。
(details;根据我的理解,这是对Postgres线协议的限制,尽管驱动程序可能在理论上通过将查询转换为显式游标来解决这个问题。)
为了防止将来出现这样的意外,我想知道这种行为是如何广泛传播的,以及哪些其他常见的JDBC驱动程序没有实现预期的实际滚动,所以我知道要注意这一点,如果我碰巧使用其中一个驱动程序。哪些其他常见的JDBC驱动程序不支持流式方式的所有滚动模式?
答案 0 :(得分:0)