• 技术文章 >数据库 >mysql教程

    mysql需要commit吗

    长期闲置长期闲置2022-04-27 19:04:33原创635

    在mysql中,是否需要commit取决于存储引擎:1、若是不支持事务的存储引擎,如myisam,则不需要使用commit;2、若是支持事务的存储引擎,如innodb,则需要知道事务是否自动提交,因此需要使用commit。

    本教程操作环境:windows10系统、mysql8.0.22版本、Dell G3电脑。

    mysql需要commit吗

    mysql在进行增删改操作的时候需不需要commit,这得看你的存储引擎。

    看自己的数据库是否是自动commit,可以使用

    mysql> show variables like '%autocommit%';

    来进行查看,如果是OFF即不自动commit,需要手动commit操作(命令行可以直接“commit;“命令),否则是自动commit。

    扩展知识:

    提交数据有三种类型:显式提交、隐式提交及自动提交。

    下面分 别说明这三种类型。

    显式提交

    用 COMMIT 命令直接完成的提交为显式提交。

    隐式提交

    用 SQL 命令间接完成的提交为隐式提交。这些命令是:

    ALTER , AUDIT , COMMENT , CONNECT , CREATE , DISCONNECT , DROP , EXIT , GRANT , NOAUDIT , QUIT, REVOKE , RENAME 。

    自动提交

    若把 AUTOCOMMIT 设置为 ON ,则在插入、修改、删除语句执行后,

    系统将自动进行提交,这就是自动提交。其格式为: SQL>SET AUTOCOMMIT ON ;

    COMMIT / ROLLBACK这两个命令用的时候要小心。 COMMIT / ROLLBACK 都是用在执行 DML语句(INSERT / DELETE / UPDATE / SELECT )之后的。DML 语句,执行完之后,处理的数据,都会放在回滚段中(除了 SELECT 语句),等待用户进行提交(COMMIT)或者回滚 (ROLLBACK),当用户执行 COMMIT / ROLLBACK后,放在回滚段中的数据就会被删除。

    (SELECT 语句执行后,数据都存在共享池。提供给其他人查询相同的数据时,直接在共享池中提取,不用再去数据库中提取,提高了数据查询的速度。)

    所有的 DML 语句都是要显式提交的,也就是说要在执行完DML语句之后,执行 COMMIT 。而其他的诸如 DDL 语句的,都是隐式提交的。也就是说,在运行那些非 DML 语句后,数据库已经进行了隐式提交,例如 CREATE TABLE,在运行脚本后,表已经建好了,并不在需要你再进行显式提交。

    推荐学习:mysql视频教程

    以上就是mysql需要commit吗的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:mysql
    上一篇:MySQL复制技术之异步复制和半同步复制 下一篇:mysql中in使用索引吗
    千万级数据并发解决方案

    相关文章推荐

    • mysql怎么增加行• mysql怎么查询第一列数据• linux怎么用yum删除mysql• mysql怎么替换换行符• MySQL归纳总结InnoDB之MVCC原理
    1/1

    PHP中文网