mysql - 锁及事务的认识
mysql事务特性:
一致性
原子性
隔离性
持久性
//mysql 事务隔离级别
读未提交 读未提交的数据
读已提交 读已提交的数据
串行序列化 一个事务完成了再执行另一个事务
可重复读(数据库默认) 就算事务T1已经提交事务,但事务T2也不读取事务T1提交的数据
脏读: 读到了另一个事务未提交的数据
重复度:两次读取的数据不一致 ,一个读取的是事务未提交的数据 , 一次是读取事务已提交的数据
幻读: 当统计数据时 ,一个事务统计了另一个事务插入的数据的最新数据
读锁:
排它锁: select * from table where 条件 for update; 查询后其他事务不可读,不可写,当前事务提交后其他事务才可以进行
共享锁: select * from table where 条件 share lock in modal; 查询后其他事务可以读 , 不可写 ,当当前事务提交后 ,其他事务才可以修改数据
写锁:
update table set ... where 条件
delete from table where 条件
insert into table () values();
innodb
如果 查询条件有索引则添加行级锁 , 如果查询条件没有添加索引则添加表级锁
mysql 加锁方法;(大前提条件 :必须在事务中执行)
排它锁:(作用: 当对数据表添加排它锁时,各个事务之间对这个数据表的执行顺序就会形成一个队列 , 防止读到脏数据;)
1.显示加锁:
sql语句 :select * from table where key = ... for update;
注意事项 :查询条件如果是唯一键(或主键) 并走索引时则会添加行级锁 , 否则会对整个表加锁;
2.隐式加锁:
sql语句 :update table set ... where ...;
注意事项:当mysql执行更新语句时 只有当查询条件是唯一键(或主键)并走索引时,mysql 才会自动添加行级锁;
共享锁:(作用 : 当对数据表添加共享锁时 , 数据表的数据只能读取而不能修改和删除;)
sql语句 :select * from table where .... lock in share mode;
注意事项 :查询条件如果是走索引时则会添加行级锁 , 否则会对整个表加锁;
mysql - 锁及事务的认识的更多相关文章
- 面试必问的MySQL锁与事务隔离级别
之前多篇文章从mysql的底层结构分析.sql语句的分析器以及sql从优化底层分析, 还有工作中常用的sql优化小知识点.面试各大互联网公司必问的mysql锁和事务隔离级别,这篇文章给你打神助攻,一飞 ...
- [转帖]2019-03-26 发布 深入理解 MySQL ——锁、事务与并发控制
深入理解 MySQL ——锁.事务与并发控制 https://segmentfault.com/a/1190000018658828 太长了 没看完.. 数据库 并发 mysql 639 次阅读 ...
- [转帖]深入理解 MySQL—锁、事务与并发控制
深入理解 MySQL—锁.事务与并发控制 http://www.itpub.net/2019/04/28/1723/ 跟oracle也类似 其实所有的数据库都有相同的机制.. 学习了机制才能够更好的工 ...
- 转载:把你的精力专注在java,jvm原理,spring原理,mysql锁,事务,多线程,大并发,分布式架构,微服务,以及相关的项目管理等等,这样你的核心竞争力才会越来越高
https://developer.51cto.com/art/202001/608984.htm 把你的精力专注在java,jvm原理,spring原理,mysql锁,事务,多线程,大并发,分布式架 ...
- (三)MySQL锁机制 + 事务
转: (三)MySQL锁机制 + 事务 表锁(偏读) 偏向MyISAM存储引擎.开销小,加锁快,无死锁,锁定粒度大,发生锁冲突的概率最高,并发最低. 查看当前数据库中表的上锁情况,0表示未上锁. sh ...
- MySQL锁和事务(一):InnoDB锁(MySQL 官方文档粗翻)
// 写在前面,实际上,数据库加锁的类型和范围受到多种因素的影响,例如数据库隔离等级,SQL语句,是否使用主键.索引等等.可以查看博文: http://www.cnblogs.com/zhaoyl/p ...
- 深入理解 MySQL ——锁、事务与并发控制
本文首发于vivo互联网技术微信公众号 mp.weixin.qq.com/s/JFSDqI5ya… 作者:张硕 本文对 MySQL 数据库中有关锁.事务及并发控制的知识及其原理做了系统化的介绍和总结, ...
- mysql锁,事务
什么是事务 事务定义了一个服务操作序列,由服务器保证这些操作序列在多个客户并发访问和服务器出现故障情况下的原子性事务的属性 A --redo&undo C --undo I --lock D ...
- 《高性能MySQL》读书笔记之 MySQL锁、事务、多版本并发控制的基础知识
1.2 并发控制 1.2.1 读写锁 在处理并发读或写时,通过实现一个由两种类型的锁组成的锁系统来解决问题.这两种类型的锁通常被称为 共享锁(shared lock) 和 排它锁(exclusive ...
- MySQL学习(三)MySQL锁与事务
本章我们着重讨论MySQL锁机制的特点,常见的锁问题,以及解决MySQL锁问题的一些方法或建议. 一.MySQL锁概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支 ...
随机推荐
- PostgreSQL 安装 & 用户配置
一.为什么选择 PostgreSQL 自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选. MySQL被oracle收购,innodb随之被oracle控制. 二 ...
- 【转载】【PAT】PAT甲级题型分类整理
最短路径 Emergency (25)-PAT甲级真题(Dijkstra算法) Public Bike Management (30)-PAT甲级真题(Dijkstra + DFS) Travel P ...
- python内置函数的使用(一)
迭代器(iterator)和可迭代对象(iterable) 在python中,要实现要个对象可以进行遍历,也就是实现for循环,那么他必须是一个可迭代对象,例如string,tuple,list,di ...
- Jrebel实现tomcat热部署,遇到的问题以及解决办法,详解
我的安装的详细过程: 下载Jrebel: https://github.com/ilanyu/ReverseProxy/releases/tag/v1.4 我的是winx64,所以选择如下的: 下载 ...
- 手把手教你搭建织女星开发板RISC-V开发环境
前言 Windows环境下搭建基于Eclipse + RISC-V gcc编译器的RISC-V开发环境,配合openocd调试软件,可以实现RISC-V内核程序的编译.下载和调试. 准备工作 工欲善其 ...
- C sharp #006# 委托与事件
饮水思源:金老师的自学网站 索引 委托(Delegate) Click事件探究 委托(Delegate) “不学会委托(Delegate),等于没学.NET编程!” 例程1-委托类型变量 using ...
- 01-Java类加载机制详解
类的加载过程 在使用java命令运行主类(main)的时候,首先要通过类加载器将类加载到JVM内存中去.主类在运行过程中如果用到其他的类就会逐步加载这些类.jar包里的类并不是一次性加载的,是使用的时 ...
- C#_.NetFramework_WebAPI项目_EXCEL数据导出
[推荐阅读我的最新的Core版文章,是最全的介绍:C#_.NetCore_Web项目_EXCEL数据导出] 项目需要引用NPOI的Nuget包: A-2--EXCEL数据导出--WebAPI项目--N ...
- Vue的MVVM框架理解
图示 只上图,请不要怪楼主懒. 这是楼主梳理后画的,因为毕竟自己画的印象深刻,更觉得香啊. 黄线: 表示View->Model, 红线: 表示Model->View 具体代码,请查看Vue ...
- vscode中js文件失去高亮/没有智能提示
vscode中js文件失去高亮/没有智能提示 两步: 第一步:基本的语法高亮提示,需要将vetur删掉,然后把vscode的历史记录缓存删掉,重启vscode. 第二步:js的智能提示,使用插件typ ...