|
|
1
5
这是很好的IMO,我个人认为永远不应该在应用程序中启用自动提交模式。所以我的建议是关闭自动提交。
从严格的性能角度来看,对于每个有开销并且可能降低应用程序性能的SQL语句,它都在启动和结束数据库事务。
顺便说一下,select语句受
|
|
|
2
5
自动提交没有任何值
|
|
|
3
3
这是一个古老的问题,但我想对这个问题给出不同的意见。 性能
事务的性能开销随并发控制机制而变化:通常是多版本并发控制或锁定。其他答案中表达的关注点似乎是结束事务的成本,但根据我的经验,最大的痛苦是长时间运行的事务,这可能导致性能瓶颈。例如,如果DBMS使用锁定,则在终止涉及该表的事务之前,无法更新表的某些部分。在诸如Oracle这样的系统中,更令人沮丧的是DDL操作(
习俗
关闭自动提交行为的一个微妙问题是,您正在从默认值进行更改,因此使用您的代码的任何其他人都可能没有预料到这一点。它是
真的很容易
通过一个函数留下一个意外的路径,而不是以一个显式的
基于合理的经验,我个人对调用数据库的任何函数的偏好如下:
|
|
|
4
1
在应用程序的任何地方,我都不会将autocommit设置为true。
性能开销(如果有的话)与侧边相比是零
A的影响
你说你永远不会把这个连接用于DML。但这就是 意图 可能通过编码标准等来维护,但实际上 是 可以将此连接用于DML语句。这足够我从不设置自动提交的理由了。
|