当前位置:网站首页>【mysql索引实现原理】
【mysql索引实现原理】
2022-08-10 12:09:00 【祁_z】
总结
共享锁大家可能很好理解,就是多个事务只能读数据不能改数据;
排他锁大家的理解可能就有些差别,我当初就犯了一个错误,以为排他锁锁住一行数据后,其他事务就不能读取和修改该行数据,其实不是这样的,
排他锁指的是一个事务在一行数据加上排他锁后,其他事务不能再在其上加其他的锁。
mysql InnoDB引擎默认的修改语句insert,update,delete都会自动给涉及到的数据加上排他锁,
select语句默认不会加任何锁类型,所以排它锁可以通过select查询数据。
1.行锁和表锁
在mysql 的 InnoDB引擎支持行锁,与Oracle不同,mysql的行锁是通过索引加载的,即是行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描,
行锁则无法实现,取而代之的是表锁。
表锁:不会出现死锁,发生锁冲突几率高,并发低。
行锁:会出现死锁,发生锁冲突几率低,并发高。
锁冲突:例如说事务A将某几行上锁后,事务B又对其上锁,锁不能共存否则会出现锁冲突。(但是共享锁可以共存,共享锁和排它锁不能共存,排它锁和排他锁也不可以)
死锁:例如说两个事务,事务A锁住了1-5行,同时事务B锁住了6-10行,此时事务A请求锁住6-10行,就会阻塞直到事务B施放6-10行的锁,而随后事务B又请求锁住1-5行,事务B也阻塞直到事务A释放1-5行的锁。死锁发生时,会产生Deadlock错误。
锁是对表操作的,所以自然锁住全表的表锁就不会出现死锁。
2.行锁的类型
行锁分 共享锁 和 排它锁。
共享锁又称:读锁(多个线程都可以读)。当一个事务对某几行上读锁时,允许其他事务对这几行进行读操作,但不允许其进行写操作,也不允许其他事务给这几行上排它锁,但允许上读锁。
排它锁又称:写锁(多个线程都可以读)。当一个事务对某几个上写锁时,不允许其他事务写,但允许读。更不允许其他事务给这几行上任何锁。包括写锁。
边栏推荐
- 动态规划之最长回文子串
- Is there a problem with the CURRENT_TIMESTAMP(6) function?
- Microchip launched a high-performance 77GHz millimeter-wave radar chip, and has received tens of thousands of orders before mass production
- 部署项目半途而废后续
- 娄底农产品检验实验室建设指南盘点
- LeetCode中等题之比较版本号
- 海外媒体宣发.国内媒体发稿要注意哪些问题?
- IM即时通讯开发WebSocket从入门到精通
- G1和CMS的三色标记法及漏标问题
- mSystems | 中农汪杰组揭示影响土壤“塑料际”微生物群落的机制
猜你喜欢

第5章 虚拟存储器
What are the five common data types of Redis?What is the corresponding data storage space?Take you to learn from scratch

郭晶晶家的象棋私教,好家伙是个机器人

太香了!自从用了这款接口神器,我的团队效率提升了 60%!

Keithley DMM7510精准测量超低功耗设备各种运作模式功耗

阿里云贾朝辉:云XR平台支持彼真科技呈现国风科幻虚拟演唱会

Chapter9 : De Novo Molecular Design with Chemical Language Models

IDC第一的背后,阿里云在打造怎样的一朵“视频云”?

没有接班人,格力只剩“明珠精选”

如何培养ui设计师的设计思维?
随机推荐
啥?他一个人写了个价值100万的软件,却用来开源了!
IP地址分类以及网络地址的计算(子网划分、超网划分)[通俗易懂]
Behind IDC's No. 1 position, what kind of "video cloud" is Alibaba Cloud building?
第5章 虚拟存储器
bat脚本——提取多个文件夹到指定路径
Golang分布式应用之etcd
漏洞管理计划的未来趋势
Microchip launched a high-performance 77GHz millimeter-wave radar chip, and has received tens of thousands of orders before mass production
A detailed explanation of implementation api embed
odps sql 不支持 unsupported feature CREATE TEMPORARY
金山云要飘到哪里?
没有接班人,格力只剩“明珠精选”
Data Analysis of Time Series (5): Simple Prediction Method
虚拟机桥接模式不能上网
ASP.NET Core依赖注入系统学习教程:ServiceDescriptor(服务注册描述类型)
「网络架构」网络代理第一部分: 代理概述
Threshold-based filtering buffer management scheme in a shared buffer packet switch core part of the paper
Nanodlp v2.2/v3.0光固化电路板,机械开关/光电开关/接近开关的接法和系统状态电平设置
娄底农产品检验实验室建设指南盘点
自定义过滤器和拦截器实现ThreadLocal线程封闭