【问题标题】:why does rewriteBatchedStatements default to false for mysql connector/j?为什么 rewriteBatchedStatements 对于 mysql connector/j 默认为 false?
【发布时间】:2018-06-14 11:09:21
【问题描述】:

mysql jdbc驱动has a property called rewriteBatchedStatements,当设置为true时可以improve batch inserts significantly,但必须显式打开。

我现在不得不为多个项目执行此操作,但找不到任何必须手动打开此功能的充分理由。

为什么这不是默认设置?

【问题讨论】:

  • 这应该是你应该在 MySQL 的票中问的问题,但如果我不得不猜测,也许有些版本不支持它,或者它改变了语句的某些语义,或者它有一个隐藏成本,或者可能不符合批处理执行的一些 JDBC 要求。

标签: java mysql jdbc mysql-connector


【解决方案1】:

连接属性 rewriteBatchedStatements 提供了不符合 JDBC 的功能。并非所有语句都可以重写,并且可能会产生意想不到的结果。特别是在处理错误和返回更新计数方面。

另请注意,rewriteBatchedStatements 可以修改原始 SQL 字符串,而不仅仅是简单的查询串联,这在许多情况下是不期望或不可取的。

由于这些原因以及许多其他原因,此属性默认为 false。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2015-01-25
    • 2021-03-07
    相关资源
    最近更新 更多