mysql jdbc中maxRows和fetchSize

maxRows 的作用是限制从 ResultSet 中返回的最大行数, 应该根据需求来进行设置

fetchSize 设置的则是每个网络往返中检索的行数。在大多数情况下,应该调整合适的 fetchSize 值以获得更好的性能

maxRows fetchSize 都是 MySQL Connector/J 驱动程序中的参数,用于控制从查询结果集中检索数据的方式,但它们具有不同的作用。

maxRows 用于限制从 ResultSet 中返回的最大行数。例如,如果您将 maxRows 设置为 100,则只会从 ResultSet 中获取前 100 行,并忽略后面的行。 maxRows 适合用于限制客户端从服务器获取的数据量。

fetchSize 则用于设置在每个网络往返中从数据库中检索的行数。换句话说,它规定了要检索多少行并将其存储在内存中,然后才将查询结果发送到客户端。这可以增加应用程序的性能和吞吐量,特别是当使用大型结果集时。

如果有1000条数据,在应用程序中设置了 fetchSize=100ResultSet 中仍然可以包含所有 1000 行的数据,并且 MySQL Connector/J 驱动程序将在后台请求从服务器检索所有 1000 行数据

需要注意的是,maxRows fetchSize 的行为差异,maxRows 只对结果集行数生效,而fetchSize 对读取结果集的行数生效。因此,在大多数情况下,可以根据应用程序需求和可用内存来调整 fetchSize 参数,以获得最佳性能。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBC 驱动程序的参数包括以下几种: 1. user:连接数据库的用户名。 2. password:连接数据库的密码。 3. autoCommit:是否自动提交事务,如果参数值为 true,则自动提交事务,否则需要手动提交事务。 4. readOnly:是否设置只读模式,如果参数值为 true,则设置为只读模式,否则为读写模式。 5. transactionIsolation:设置事务隔离级别,可选值为 TRANSACTION_NONE、TRANSACTION_READ_UNCOMMITTED、TRANSACTION_READ_COMMITTED、TRANSACTION_REPEATABLE_READ 和 TRANSACTION_SERIALIZABLE。 6. maxRows:设置最大返回行数。 7. fetchSize:设置一次从数据库读取的行数。 8. queryTimeout:设置查询超时时间,单位为秒。 9. useCursorFetch:是否使用游标,如果参数值为 true,则使用游标,否则不使用。 10. useServerPrepStmts:是否在服务器端使用预编译语句,如果参数值为 true,则在服务器端使用预编译语句,否则在客户端使用预编译语句。 11. rewriteBatchedStatements:是否重写批量插入语句,如果参数值为 true,则重写批量插入语句,否则不重写。 12. cachePrepStmts:是否缓存预编译语句,如果参数值为 true,则缓存预编译语句,否则不缓存。 13. useUnicode:是否使用 Unicode 字符集,如果参数值为 true,则使用 Unicode 字符集,否则使用默认字符集。 14. characterEncoding:设置字符编码,用于解决文乱码问题。 15. useSSL:是否使用 SSL 连接,如果参数值为 true,则使用 SSL 连接,否则不使用。 16. allowPublicKeyRetrieval:是否允许使用存储在服务器上的公钥检索证书,如果参数值为 true,则允许使用,否则不允许。 17. serverTimezone:设置服务器时区。 18. useAffectedRows:是否使用受影响的行数,如果参数值为 true,则使用受影响的行数,否则使用返回的结果集。 19. useCompression:是否启用压缩,如果参数值为 true,则启用压缩,否则不启用。 20. cacheServerConfiguration:是否缓存服务器配置信息,如果参数值为 true,则缓存服务器配置信息,否则不缓存。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值