mysql事物机制
一、启动方式
1、使用 service 启动:service mysqld start
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start
3、使用 safe_mysqld 启动:safe_mysqld&
二、停止
1、使用 service 启动:service mysqld stop
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop
3、mysqladmin shutdown
三、重启
1、使用 service 启动:service mysqld restart
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart
四、设置事务提交方式
set autocommit=0 禁止自动提交
set autocommit=1 开启自动提交
show variables like 'autocommit'
SET GLOBAL init_connect=’SET autocommit=0′;
五、mysql事务测试
MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关:
show create table tablename; 可以查看表的存储引擎
alter table tablename type=InnoDB; 更改表的存储引擎
InnoDB:不支持事务,用于只读程序提高性能
MyISAM:支持ACID事务、行级锁、并发
当然还有其他的存储引擎类型,目前的应用中只使用了这两种类型。
-----------------------------------------------------------------------
场景1:
1 tx.begin(); // 启动事务
2 insert table1; // 插入数据到table1,table1 的存储引擎是MyISAM
3 insert table2; // 插入数据到table2,table2 的存储引擎是InnoDB
4 tx.commit(); // 提交事务
经测:
1、4还未执行的时候,2就已经入库了,3未入库,4执行后,3入库。
2、2执行了,3异常了,2未回滚。
-----------------------------------------------------------------------
-----------------------------------------------------------------------
场景2:
设置事务非自动提交。
代码1:
insert table1; // table1 存储引擎 MyISAM
代码2:
tx.begin();
insert table1; // table1 存储引擎 MyISAM
tx.commit();
代码2加事务无效果,未执行tx.commit() 就已经入库了
table2存储类型 InnoDB;
代码1
insert table2;//
代码2
tx.begin();
insert table2; // 直接入库,
tx.commit();
代码1直接入库,代码2执行tx.commit()后入库
-----------------------------------------------------------------------
-----------------------------------------------------------------------
场景3:
设置自动提交
InnoDB存储类型
insert table2; // 直接提交
tx.begin();
insert table2; // 待到tx.commit()提交,才入库。
insert table3; // 带到tx.commit()提交,才入库。
tx.commit();
-------------------------------------------------------------------------
可以看出:
存储引擎为MyISAM,加事务不加事务无效果,MyISAM是不支持事务的。
存储引擎为InnoDB,代码没有启动事务,每一条sql语句会启动一个事务,若代码控制了事务,则由代码控制()。
存储引擎为InnoDB,设置是自动提交,代码中加入了事务控制,则由事务控制,没有达到自动提交的效果。
tx.begin();
insert;
insert;
insert;
tx.commit();
btw:感觉mysql中设置自动提交和不自动提交,没什么意义,也没什么效果。
分享到:
相关推荐
MySQL事务机制,里面有详细介绍,对mysql数据库中的不同隔离级别的描述与实例。
Java Web基础与实例教程的PPT,自己制作的PPT,将近400页,免费分享,童鞋们努力学习吧。
mysql事务处理的意义 事务处理机制在程序开发过程中有着非常重要的作用,它可以使整个系统更加安全,例如在银行处理转账业务时,如果A账户中的金额刚被发出,而B账户还没来得及接收就发生停电,这会给银行和个人带来...
深入理解Mysql事务隔离级别与锁机制 Mysql事务隔离级别与锁机制是数据库系统中非常重要的概念,它们都是为了解决多事务并发问题而设计的。下面我们将深入讲解这些机制,让大家彻底理解数据库内部的执行原理。 事务...
mysql的锁机制和事务
此外,文章还将讨论 MySQL 的事务机制。事务是 MySQL 中的一种机制,旨在确保数据库的数据一致性。文章将讨论事务的实现原理和应用场景。 本文将讨论 MySQL 分库分表无限扩容后的瓶颈及解决方案,旨在帮助开发者和...
Mysql事务以及锁原理讲解,方便大家了解mysql事务和锁的原理
mysql事件,触发器,事务
详解Mysql事务隔离级别与锁机制 本篇文章详细介绍了Mysql事务隔离级别与锁机制的概念、原理和应用。事务隔离级别是数据库系统中的一种机制,用于解决多事务并发问题,包括脏写、不可重复读、幻读等问题。锁机制是...
"深入理解Mysql事务隔离级别与锁机制" 事务隔离级别是数据库系统中的一种机制,用于解决多事务并发问题,使得事务之间的执行不受影响。这种机制可以分为四个级别:Read Uncommitted、Read Committed、Repeatable ...
这份PDF文档《MySQL事务(五).pdf》是关于MySQL数据库事务管理的深入指南,作为系列教程的第五部分,它详尽地介绍了事务处理的概念、原则以及在实际数据库操作中的应用。内容包括: 事务基础:解释事务的概念和...
项目9--MySQL数据库中的事务机制与锁机制.pptx
在 MySQL 中,死锁检测机制是一种重要的机制,用于检测和解决事务之间的死锁问题。在本文中,我们将详细介绍 MySQL 死锁检测机制的原理和实现。 一、死锁的定义和原理 在 MySQL 中,死锁是指两个或两个以上的事务...
4-7深入理解Mysql事务隔离级别与锁机制.mp4
4-6深入理解Mysql事务隔离级别与锁机制.mp4
mysql 事物与锁详解,详细描述事物产生的前因后果与解决方案. 锁的力度都有解释。,很好的学习资料
MySQL事务隔离级别详解 事务概念是数据库并发操作的最小控制单位,它是包含了一组有序的数据库操作命令的序列。事务的特性包括原子性、一致性、隔离性和永久性。原子性是指事务包含的数据库操作命令要么都执行,...
1.事务 1.1 什么是事务? 事务是逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败。 1.2 哪些引擎支持事务 InnoDB支持事务 1.3 事务的四大特性 原子性(Atomicity):强调事务的不可分割,...
MySQL中的InnoDB引擎的表才支持transaction。在一个事务里,如果出现一个数据库操作失败了,事务内的所有操作将被回滚,数据库将会回到事务前的初始状态。有一些不能被回滚的语句:将在本文的最后讨论。 在一个web...
(程序员不是数据库管理员他可能不了解很多数据库的机制比如事务,错误回滚等.银行转帐问题可以解释.) 减轻客户端应用程序的负担 (让更多的操作由数据库服务器执行) MySql存储过程与事务处理教学PPT