精华内容
下载资源
问答
  • 其实使用不同的数据库开发应用程序,本身没有什么,但开发人员如果不熟悉所使用的数据库,还沿用自己熟悉数据库的处理方式来处理新的数据库,那显然就会造成很多麻烦,这点对其他职业也是一样。今天想...

    其实使用不同的数据库开发应用程序,本身没有什么,但开发人员如果不熟悉所使用的数据库,还沿用自己熟悉数据库的处理方式来处理新的数据库,那显然就会造成很多麻烦,这点对其他职业也是一样。

    今天想说的是,习惯使用ORACLE 的程序员,在MYSQL 留下的麻烦怎么被发现。这两种数据库在处理事务上是有不同的,oracle 默认不会自动commit, 而mysql 会默认 auto commit, 说道auto commit ,四大数据库,只有oracle  一家是不默认commit。

    那问题出在哪里,如果当初在程序员使用mysql 上设置了 auto commit 为非自动(线程级别,或global),而后期某些原因,又忘记了,记得MYSQL 本身是默认是 auto commit 那乱子就来了。所以一般都会看看developer 的历史,如果开发的历史用没有使用过mysql 则必然会多留心。

    下面有一个例子,系统有一个更新一直过不去,一直报

    Lock wait timeout exceeded; try restarting transaction

    哪遇到这样的问题,会想起什么,怎么处理这个问题。 第一个想法是看看 

    show engine innodb stauts

    看到上面的图,的反映是什么,有线程霸占某些记录的row lock 太长时间了,造成其他的session无法操作对应的记录。  在往深里面想,就有可能是没有commit 而造成的 session idel 而事务running 的问题。

    遇到这样的问题,需要找出当前那个 session 正在idel 但其实里面的 transaction 在running 的状态。 

    1 找到正在sleep的session

    2 查看耗时较长的session中运行的语句

    通过查看到较长耗时的语句,以及语句的 processlist_id 就可以大致找到当前在作妖的线程ID。

    然后kill他就好。

    当然还有另外一种情况,就是程序里面由于不严谨,导致大批量的begin 但没有commit, 那这样用上面的方法就不赶趟了,怎么来更快的发现这样的问题

    通过上图的语句,去发现相关的计数器是否一致在疯狂的上涨,那就证明当前的数据库系统中存在或可能存在这样的问题。

    展开全文
  • 在本篇文章里小编给大家分享了关于MySql是否需要commit的相关知识点内容,需要的朋友们跟着操作下。
  • 在使用python操作mysql时,自动提交默认为off (1)在以下语句中需要commit update,delete,insert等修改表中数据的需要commit (2)在以下语句中需要commit create,drop,alter等修改表结构的,就不需要commit,因为...

    在使用python操作mysql时,自动提交默认为off

    (1)在以下语句中需要commit

              update,delete,insert等修改表中数据的需要commit

    (2)在以下语句中需要commit

              create,drop,alter等修改表结构的,就不需要commit,因为内部隐藏了commit 

     

    展开全文
  • start TRANSACTION; delete from article where ...COMMIT; ROLLBACK; -- 此时回滚无效 ----------------------------------------------- start TRANSACTION; delete from article where aid= 3; ROLLBACK; -- ...
    start TRANSACTION;
    delete from article where aid= 3;
    COMMIT;
    
    ROLLBACK; -- 此时回滚无效
    
    -----------------------------------------------
    
    start TRANSACTION;
    delete from article where aid= 3;
    ROLLBACK;  -- 此时回滚有效

    end

    展开全文
  • Mysql 中不commit也可以改变数据库吧,那么写不写commit命令有什么区别呢? 15 主要指(INSERT / DELETE / UPDATE / SELECT ),本人初学者,谢谢大家的指点。应该是写好还是不写好。 Andy666andy | 浏览 ...

    Mysql 中不commit也可以改变数据库吧,那么写不写commit命令有什么区别呢? 15

    主要指(INSERT / DELETE / UPDATE / SELECT ),本人初学者,谢谢大家的指点。应该是写好还是不写好。
    Andy666andy  |  浏览 14176 次
    我有更好的答案
    推荐于2017-08-31 01:36:37 最佳答案
    这个要看你用什么“存储引擎”
    如果是不支持事务的引擎,如myisam,则是否commit都没有效的。

    如果是支持事务的引擎,如innodb,则有系统参数设置是否自动commit,查看参数如下:
    mysql> show variables like '%autocommit%';

    其他回答

    这个要看你用什么“存储引擎”
    如果是不支持事务的引擎,如myisam,则是否commit都没有效的。

    如果是支持事务的引擎,如innodb,则有系统参数设置是否自动commit,查看参数如下:
    mysql> show variables like '%autocommit%';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | autocommit | ON |
    +---------------+-------+
    1 row in set (0.00 sec)

    mysql>

    显示结果为on表示事务自动提交,也即不用手工去commit。
    当然,你可以设置其为OFF,然后自己手工去commit。
     本回答被提问者采纳
    vinson_shen    |  推荐于2016-11-24 05:28:20
    评论(4) 
    27  6
    话说mysql在进行数据操作语言(dml)(即insert,delete等)的时候是默认自动commit的
    optilixue    |  发布于2010-08-04 18:03
    评论 
    3  1
    使用了commit后你不可以回退,它会永久改变你的数据,而不使用只是临时改变,它把改变后的内容备份了一份在日志中,你可以rollback还原回来,看情况而用了。
    924922279    |  发布于2010-08-02 22:41
    评论(1) 
    2  0
    可以
    johnny20102012    |  发布于2010-08-03 16:29
    评论 
    0  0
    那 MYSQL“事务”的机制如何体现?
    caiqiupeng    |  发布于2010-08-02 22:31

    展开全文
  • 1. commit commit是提交操作,将操作显式提交到数据库 这里需要注意,并不是所有sql语句执行完都需要进行commit操作,有些操作执行完就已经自动隐式提交到数据库了,隐式提交的命令有: ALTER AUDIT COMMENT ...
  • mysql中的commit()语句

    万次阅读 2017-07-18 14:23:33
    今天在对数据库进行操作的时候,刚开始进行查询的时候没有使用commit()语句结果都正常,但是执行到插入的时候,数据一直没有插入进去,最后查资料才发现没有commit。数据操作语言(Date Manipulation Language)DML...
  • mysql数据库已设置自动提交,此时,我们在代码里还去主动commit,则会报错Can't call commit when autocommit=true。该问题对rollback有同样的影响(Can't call callback when autocommit=true)。 原文链接:...
  • MySQL中的COMMIT

    2016-12-11 13:16:45
    从功能上划分,SQL 语言可以分为DDL,DML和DCL三大类。 1. DDL(Data Definition Language) 数据定义语言,用于定义和管理 SQL 数据库中的所有...建议每次 对MYSQL中的表修改或插入数据后 都提交一下(commit) !
  • MySQL事务的rollback和commit

    千次阅读 2019-10-16 13:09:14
    MySQL的事务只要执行一条DML语句就会自动提交: 可以选择手动提交来关闭自动提交: 如果只是回滚rollback但是没有提交的话,不会改变硬盘中的数据,所以回滚以后查询不出来两条结果 下面演示提交之后查询的...
  • mysql存储过程事务及commit

    千次阅读 2019-07-26 17:42:10
    1、mysql存储过程是否是一个事务 在运行一个mysql存储过程时,执行了一部分后...2、mysql存储过程是否需要commit; 如果是支持事务的引擎,如innodb,支持自动提交; 可以使用**mysql> show variables like ‘...
  • // 在使用事务commit时,没有成功插入数据却占用了id package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java....
  • Mysql 中需不需要commit

    万次阅读 2018-07-11 16:47:14
    mysql在进行如插入(insert)操作的时候需不需要commit,这得看你的存储引擎,如果是不支持事务的引擎,如myisam,则是否commit没有效的。如果是支持事务的引擎,如innodb,则得知道你事物支持是否自动提交事务...
  • MySQL Group Commit理解

    千次阅读 2015-01-07 12:14:33
    简单的方法理解MySQL Group Commit原理 一个摆渡将乘客从A点传输到B点 MySQL 5.0 行为 在MySQL 5.0中,摆渡会在A点按顺序搭载乘客,并且传送到B点。A点和B点的来回行程大约需要10min时间,因此在摆渡过程...
  • 基于ubuntu18.04制作MySQL的docker镜像一、通过docker commit1. 基础配置2. 制作步骤 一、通过docker commit 1. 基础配置 镜像源:https://ogec0pyk.mirror.aliyuncs.com(阿里) Ubuntu版本信息 MySQL版本信息 ...
  • 如果存储过程中没有执行commit,那么spring容器一旦发生了事务回滚,存储过程执行的操作也会回滚。如果存储过程执行了commit,那么数据库自身的事务此时已提交,这时即使在spring容器中托管了事务,并且由于其他原因...
  • MYSQLCOMMIT和ROLLBACK

    万次阅读 2013-09-28 16:33:02
    DML 语句,执行完之后,处理的数据,都会放在回滚段中(除了 SELECT 语句),等待用户进行提交(COMMIT)或者回滚 (ROLLBACK),当用户执行 COMMIT / ROLLBACK后,放在回滚段中的数据就会被删除。  (SELECT ...
  • MySQL存储过程游标实现分批COMMIT

    千次阅读 2020-08-31 20:21:51
    存储过程分批COMMIT海量数据分批提交 海量数据分批提交 DROP PROCEDURE IF EXISTS proc_role; CREATE PROCEDURE proc_role ( ) BEGIN DECLARE done int DEFAULT FALSE; DECLARE v_cnt int DEFAULT 0; DECLARE v_...
  • 以下是自己根据廖雪峰老师blog总结的二者用法: 提交(commit) 事务的提交(commit)指的是把经过一系列操作后发生了修改了数据写入数据库中,注意,已提交的事务不能rollback。 COMMIT; --提交事务 回滚(rollback) ...
  • mysqlcommit,transaction事物控制

    千次阅读 2017-07-25 10:45:46
    举个例子,我想把今天输入到数据库里的数据在晚上的时候全部删除,那么我们就可以在今天早上的时候开始transaction事物,令autocommit关闭并且执行commit,然后再开始输入数据,到晚上的时候,可以执行rollback恢复...
  • Mysql中的commit()语句

    万次阅读 2016-08-16 00:13:06
    Python操作数据库时commit的用法
  • MySQL 面试题

    万次阅读 多人点赞 2019-09-02 16:03:33
    MySQL 面试题 MySQL 涉及的内容非常非常非常多,所以面试题也容易写的杂乱。当年,我们记着几个一定要掌握的重心: 重点的题目添加了【重点】前缀。 索引。 锁。 事务和隔离级别。 因为 MySQL 还会有部分内容和...
  • mysql插入的时候是否需要commit

    千次阅读 2018-11-13 09:59:57
    如果是不支持事务的引擎,如myisam,则是否commit没有效的。 如果是支持事务的引擎,如innodb,则得知道你事物支持是否自动提交事务(即commit) 看自己的数据库是否是自动commit,可以使用mysql> show ...
  • MySqlcommit、rollback等事务控制命令

    千次阅读 2018-07-03 15:49:56
    MySQL 事务MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就...
  • MySQL Group Commit 笔记

    千次阅读 2017-01-22 22:32:05
    MySQL/MariaDB使用XA/2阶段提交保证事务持久性。 提交事务的三个阶段: 准备阶段,事务在引擎中持久化,但仍可以回滚; 如果准备阶段成功,事务在binlog中持久化; 提交阶段,引擎提交事务,无法再回滚。 开启...
  • mysql】sqlalchemy commit 和 flush

    千次阅读 2017-08-13 16:42:12
    今天看到了commit和flush函数,想要弄清楚区别。 先看下对象的状态。总共5个,这里只谈3个。 transitant:刚new出来的对象,没有和session或者orm框架产生关联。 pending:transitant的对象调用add后,就会变为...
  • mysql慢日志都是COMMIT

    2020-09-28 20:33:21
    马上双十一大促了,要统一过一遍所有数据库负载较高的机器,把慢查询...但是为什么没有记录对应的语句,而只记录了COMMIT;呢? 原因可能是业务启用了大事务, 例如BEGIN开启事务后,里面执行了大量的INSERT语句,然.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 219,505
精华内容 87,802
关键字:

mysql没有commit

mysql 订阅