码农网

网站首页> 数据库> Mysql

Mysql事务与行级锁介绍

众衡网络科技

一、事务

哪些引擎支持事务?

MySQL支持事务的存储引擎有InnoDB,MyISAM是支持事务的

事务的四个特点:

原子性:对于数据的操作要么一起执行,要么一起失败

隔离性:在操作的数据这个事务没有执行完成,其他程序无法操作这个数据

一致性:根据MySQL的规则,保证数据执行数量是一致。

持久性:保存在磁盘中

事务开启:BEGIN 或者 START TRANSACTION

事务提交:COMMIT

事务回滚:ROLLBACK

创建数据表:

CREATE TABLE `demo` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(255) DEFAULT NULL,
 `tel` varchar(12) DEFAULT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `tel` (`tel`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4;

测试事务数据:

BEGIN  或者 START TRANSACTION
INSERT INTO `demo` (name,tel)VALUES('码农网','138888888882') 
INSERT INTO `demo` (name,tel)VALUES('码农网','138888888881') 
 
COMMIT
 
ROLLBACK

MySQL查询异常数据,我们可以通过事务执行ROLLBACK进行回滚。

二、行级锁:能锁住具体的某一行数据

2.1、锁机制:

表锁: myisam,早期BDB锁住整个表锁的实现,开销小,加锁的速度快一些

页锁: BDB锁住一页的数据,大概是16kb左右大小的数据折中

行锁: innodb锁住某一行的数据,开销小,加锁的速度快一些

2.1.1、排它锁:不能允许读,也不能写 ,不能与其他锁一起使用

eg:我们新建两个查询窗口,并分别加上排它锁

第一个程序

START TRANSACTION
SELECT * from `demo` WHERE id =1 for update
COMMIT
ROLLBACK

第二个程序

START TRANSACTION
SELECT * from `demo` WHERE id =1 for update
COMMIT
ROLLBACK

执行之后可以发现,第二个程序需要等待第一个程序提交之后才执行

Mysql事务与行级锁介绍

2.1.2、共享锁:可以允许读,但是不能写,可以与共享锁一起使用

eg:我们新建两个查询窗口,并分别加一把共享锁

第一个程序

START TRANSACTION
SELECT * from `demo` WHERE id =1 LOCK IN SHARE MODE

第二个程序

START TRANSACTION
SELECT * from `demo` WHERE id =1 LOCK IN SHARE MODE

Mysql事务与行级锁介绍

说明:在MySQL当中update, delete, insert, alert这些写的操作,默认加上一把排它锁。

一条数据 如果加了排它锁,就不能加其他排它锁,也不能加共享锁而共享锁,可以继续加共享锁;并且可以读取数据。

mysql MySQL事务

本文地址:https://m.manongw.com/article/398.html

文章来源:码农网

版权申明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 ezhongheng@126.com 举报,一经查实,本站将立刻删除。

最近更新
热门素材
html5卡通章鱼素材,几何图形抽象设计

html5卡通章鱼素材,几何图形抽象设计

图片素材

html文字动画特效,文字虚线边框

html文字动画特效,文字虚线边框

文字特效

Bootstrap点击左侧垂直导航菜单全屏网页切换特效

Bootstrap点击左侧垂直导航菜单全屏网页切换特效

导航菜单

js+css3透明渐变风格导航菜单特效

js+css3透明渐变风格导航菜单特效

导航菜单

8款经典的css网站顶部导航栏样式

8款经典的css网站顶部导航栏样式

图片素材

js+css3网站顶部自适应导航栏菜单特效

js+css3网站顶部自适应导航栏菜单特效

图片素材

jQuery自定义添加删除表格行内容特效

jQuery自定义添加删除表格行内容特效

图片素材

jQuery+CSS3漂亮的下拉菜单选择框美化特效

jQuery+CSS3漂亮的下拉菜单选择框美化特效

css3实例

jQuery文字公告无限滚动轮播特效

jQuery文字公告无限滚动轮播特效

css3实例

jQuery+Layui省市区城市三级联动菜单选择特效

jQuery+Layui省市区城市三级联动菜单选择特效

css3实例