首先描述一下这个参数的作用。

  这个参数 默认是开启的。 开启以后再命令敲的sql 会自动提交。如果关闭,就必须手动 commit。

查看 这个 自动提交状态。

  SELECT @@autocommit;

零时修改这个素心

  set @@autocimmit = 1;

全局修改:可以改 mysql.cnf(linux ) 或者 mysql.ini(window) 文件

修改 以后 直接在命令行 写sql  无效了

需要这么写:

开启以后,会强制要求 提交

在事物环境中 提交一次,能提高执行效率。但是 这样写 不管在开没开启自动提交效率都 一样,比单条提交效率高。只是 关闭后单条 提交被禁用,或者说因为没有个每一条 sql  一个事物环境,所以不允许执行 没有手动提交的 单条sql。

结论:autocimmit = 0 ,不允许自动提交,不会在命令行 执行的每一条 sql 的同时,commit 一次。这样就强制 命令行 写入数据必须开启 一个 事物,然后执行 sql  以后 手动 提交。从而避免了命令行 方式的 大量 单条sql 执行 慢 的问题。

备注:自动提交的 批量单条sql 执行,这时候每一个sql 是独立提交的。所以 异常不能 ,也不会 全部回滚。

然后在说说   spring  里面男的 autocimmit = 0 对 spring 事物的影响。

首先,spring 默认会设置当前连接 autocimmit =1.

如图:在mysql  全局 关闭 自动提交的 情况下,获取spring的 自动提交。是true;

这也是为什么 数据库关闭自动提交 后 spring 没有写 @Transactional 的方法里面的 修改语句 也会被提交。

如果 数据库的 autocimmit =0 ,并且管理spring里面默认修改的 自动提交(dmg.getDataSource().getConnection().setAutoCommit(false);  ),那么 sql 就不会自动提交了。这时候 插入语句无效。

关于 spring 没有写  @Transactional 的解释:

  数据库 提交有 2 中方式:

    1 单行提交,

    2 提交同一个事物的多行代码

不写  @Transactional 就是 单行提交。

关于mysql 的 autoCommit 参数的更多相关文章

  1. MySQL中binlog参数:binlog_rows_query_log_events-记录具体的SQL【转】

    在使用RBR也就是行格式的时候,去解析binlog,需要逆向才能分析出对应的原始SQL是什么,而且,里面对应的是每一条具体行变更的内容.当然,你可以开启general log,但如果我们需要的只是记录 ...

  2. Mysqldump参数大全 这 些参数 不同于 mysql 的那些参数(下边文章开头有链接) :2 种类型的参数含义是不一样的

    Mysqldump参数大全  这 些参数 不同于 mysql 的那些参数  :2 种类型的参数含义是不一样的 Mysqldump参数大全(参数来源于mysql5.5.19源码) 参数 参数说明 --a ...

  3. MySQL数据库实例参数对比脚本

    如何对比两个MySQL实例的参数情况,生产中常会有这样的需求,最近写了个python脚本,可基本实现该需求. 脚本 #!/usr/bin/python import MySQLdb,sys def f ...

  4. MySQL 各种超时参数的含义

    MySQL 各种超时参数的含义 今日在查看锁超时的设置时,看到show variables like '%timeout%';语句输出结果中的十几种超时参数时突然想整理一下,不知道大家有没有想过,这么 ...

  5. mysql命令行参数(转)

    MySQL命令行参数 Usage: mysql [OPTIONS] [database] //命令方式  -?, --help //显示帮助信息并退出  -I, --help //显示帮助信息并退出  ...

  6. mysql 命令行参数

    MySQL命令行参数 Usage: mysql [OPTIONS] [database] //命令方式  例如: mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAM ...

  7. Mysql常用show命令,show variables like xxx 详解,mysql运行时参数

    MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文汇集了show命令的众多用法. 详细: http://dev.mysql.com/doc/ ...

  8. MySQL 有输入输出参数的存储过程实例

    1.MySQL 有输入输出参数的存储过程实例 DELIMITER // DROP PROCEDURE IF EXISTS `test`.`p_getvalue` // CREATE PROCEDURE ...

  9. mysql禁用autocommit,以及遇到的问题(转)

    MySQL的autocommit(自动提交)默认是开启,其对mysql的性能有一定影响,举个例子来说,如果你插入了1000条数据,mysql会commit1000次的,如果我们把autocommit关 ...

随机推荐

  1. Python数据库连接池---DBUtils

    Python数据库连接池DBUtils   DBUtils是Python的一个用于实现数据库连接池的模块. 此连接池有两种连接模式: 模式一:为每个线程创建一个连接,线程即使调用了close方法,也不 ...

  2. TypeError: format string

    先来看一段Python代码: class Negate: def __init__(self, val): self.val = -val def __repr__(self): return str ...

  3. 如何在linux环境安装JDK

    1. 到JDK官网下载相应的安装包 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.ht ...

  4. Redux的工作流程

    1.Redux 是一个专门用来管理数据业务或逻辑状态的框架,它也可以实现代码结构的规范化并提供组件之间通信的便利,而这两点,对于大型应用来说非常关键. 2.工作流程: Redux 三大原则 单一数据源 ...

  5. 在Servlet中获取spring容器WebApplicationContext

    WebApplicationContext springContext = WebApplicationContextUtils.getRequiredWebApplicationContext(ge ...

  6. Java 实现ftp 文件上传、下载和删除

    本文利用apache ftp工具实现文件的上传下载和删除.具体如下: 1.下载相应的jar包 commons-net-1.4.1.jar 2.实现代码如下: public class FtpUtils ...

  7. 使用Bash Bunny从被锁定的系统抓取登陆凭据

    在今年早些时候,FB就对Bash Bunny做了相关的报导.这款号称“世界上最先进的USB攻击工具”的Bash Bunny,是否真的像其所说的一样是款渗透神器呢?下面,我将通过实例演示如何利用Bash ...

  8. ansible小计

    一.忽略hosts,只在一台机器上执行: /usr/local/bin/ansible-playbook /app/ansiblecfg/ztr/ent_extract.yml --limit=10. ...

  9. Verdi 看波形常用快捷操作

    Verdi看波形的基本操作小结: 快捷键:(大写字母=Shift+小写) g    get, signlas添加信号,显示波形n    next, Search Forward选定信号按指定的值(上升 ...

  10. Android测试中monkey的使用方法

    1.直接使用adb命令 adb shell monkey -p 包名 <event-count> 例: 1)adb shell monkey -p 包名-s 500 --throttle ...