如果启用“cacheCallableStmts”,应缓存多少可调用语句?
默认值 100 自版本 3.1.2 如果“cacheResultSetMetaData”设置为“true”,则缓存“ResultSetMetadata”的查询数。
默认值 50 自版本 3.1.1 驱动程序是否应该参考由“Connection.setAutoCommit()”和“Connection.setTransactionIsolation()”设置的自动提交和事务隔离的内部值以及协议维护的事务状态,而不是查询数据库或盲目地向数据库发送命令以进行“commit()”或“rollback()”方法调用?
默认值 错误的 自版本 3.1.7 驱动程序是否应使用 MySQL 协议提供的事务中状态来确定是否应实际将“commit()”或“rollback()”发送到数据库?
默认值 错误的 自版本 5.1.7 如果启用预处理语句缓存,应该缓存多少预处理语句?
默认值 25 自版本 3.0.10 如果启用准备语句缓存,驱动程序将缓存解析的最大 SQL 是什么?
默认值 256 自版本 3.0.10 实现“com.mysql.cj.CacheAdapterFactory”的类的名称,它将用于为准备好的语句的解析表示创建缓存。在版本 8.0.29 之前,此属性被命名为“parseInfoCacheFactory”,它仍然是一个别名。
默认值 com.mysql.cj.PerConnectionLRUFactory 自版本 5.1.1 实现“com.mysql.cj.CacheAdapterFactory”的类的名称,它将用于为 MySQL 服务器配置值创建缓存。
默认值 com.mysql.cj.util.PerVmServerConfigCacheFactory 自版本 5.1.1 调用“Connection.setTransactionIsolation()”时,驱动程序是否应始终与数据库通信?如果设置为“false”,驱动程序将仅在请求的事务隔离不同于较新的、通过“Connection.setTransactionIsolation()”设置的最后一个值或从中读取的值时才与数据库通信建立连接时的服务器。请注意,“useLocalSessionState=true”将强制执行与“alwaysSendSetIsolation=false”相同的行为,而不管“alwaysSendSetIsolation”是如何设置的。
默认值 真的 自版本 3.1.7 当与服务器的连接失败时,驱动程序是否应该维护各种内部计时器以启用空闲时间计算以及更详细的错误消息?将此属性设置为 false 会在每个查询中移除至少两次对“System.getCurrentTimeMillis()”的调用。
默认值 真的 自版本 3.1.9 驱动程序是否应该使用基于游标的提取来检索行?如果设置为“true”且“defaultFetchSize”设置为大于零的值或在语句上调用值大于零的“setFetchSize()”,则将使用基于游标的结果集。请注意,在这种情况下,“useServerPrepStmts”会自动设置为“true”,因为游标功能仅适用于服务器端准备好的语句。
默认值 错误的 自版本 5.0.0 驱动程序是否应该缓存 CallableStatements 的解析阶段?
默认值 错误的 自版本 3.1.2 驱动程序是否应该缓存客户端准备语句的 PreparedStatements 的解析阶段,“检查”服务器端准备语句和服务器端准备语句本身的适用性?
默认值 错误的 自版本 3.0.10 驱动程序是否应该为语句和准备好的语句缓存“ResultSetMetaData”?
默认值 错误的 自版本 3.1.1 驱动程序是否应该在每个 URL 的基础上缓存“SHOW VARIABLES”和“SHOW COLLATION”的结果?
默认值 错误的 自版本 3.1.5 驱动程序将在所有新创建的语句上使用此值调用“setFetchSize(n)”。
默认值 0 自版本 3.1.9 dontCheckOnDuplicateKeyUpdateInSQL
停止检查每个 INSERT 语句是否包含“ON DUPLICATE KEY UPDATE”子句。作为副作用,获取语句生成的键信息将返回一个通常不会返回的列表。另请注意,在这种情况下,返回的生成密钥列表可能不准确。如果与“rewriteBatchedStatements=true”同时设置,则取消此属性的效果。
默认值 错误的 自版本 5.1.32 当服务器的状态与“Connection.setAutoCommit(boolean)”请求的状态不匹配时,驱动程序是否应该只发出“set autocommit=n”查询?
默认值 错误的 自版本 3.1.3 设置 Statement 对象的默认转义处理行为。“Statement.setEscapeProcessing()”方法可用于指定单个语句对象的转义处理行为。准备好的语句中的默认转义处理行为必须使用属性“processEscapeCodesForPrepStmts”进行定义。
默认值 真的 自版本 6.0.1 启用后,通过“Statement.setQueryTimeout()”设置的查询超时使用共享的“java.util.Timer”实例进行调度。即使在处理查询之前超时没有过期,'TimerTask' 也会为给定的超时使用内存,如果没有被取消,直到超时过期时才会被回收司机。高负载环境可能需要考虑禁用此功能。
默认值 真的 自版本 5.0.6 JDBC 驱动程序应该考虑多大的结果集行,从而在内部使用一种内存效率更高的方式来表示该行?
默认值 2048 自版本 5.1.1 当调用“Connection.setReadOnly()”时,驱动程序是否应该发出适当的语句以在服务器端隐式设置事务访问模式?将此属性设置为“true”可启用 InnoDB 只读潜在优化,但也需要额外的往返以设置正确的事务状态。即使此属性设置为“false”,驱动程序也会尽最大努力阻止执行数据库状态更改查询。
默认值 真的 自版本 5.1.35 驱动程序是否应该使用多查询,而不考虑“allowMultiQueries”的设置,以及在调用“executeBatch()”时将 INSERT 和 REPLACE 查询的准备语句重写为多值子句语句?
请注意,这可能会在使用普通语句时允许 SQL 注入,并且提供的输入未正确清理。另请注意,对于准备好的语句,如果在使用“PreparedStatement.set*Stream()”时未指定流长度,则驱动程序将无法确定每个批次的最佳参数数量,并可能返回错误,说明结果数据包太大。
'Statement.getGeneratedKeys()',对于重写的语句,仅当整个批处理包含 INSERT 或 REPLACE 语句时才有效。
请注意,当对重写语句使用“rewriteBatchedStatements=true”和“INSERT ... ON DUPLICATE KEY UPDATE”时,服务器只为批处理中所有受影响(或找到)的行返回一个值,并且无法映射它对最初的陈述是正确的;在这种情况下,如果总计数为零,则驱动程序返回“0”作为每个批处理语句的结果,如果总计数大于零,则驱动程序返回“Statement.SUCCESS_NO_INFO”。
默认值 错误的 自版本 3.1.13 从服务器读取时使用优化的非阻塞缓冲输入流?
默认值 真的 自版本 3.1.5