首页 > 数据库 >mysql锁总结

mysql锁总结

时间:2023-03-10 20:11:25浏览次数:51  
标签:总结 加锁 行锁 间隙 锁住 意向锁 mysql 表锁

概述:锁是在并发访问时,解决数据的有效性、一致性问题,有全局锁、表级锁、行级锁,锁粒度越小越好。

全局锁:是对整个数据库实例加锁,一旦对整个数据库实例加了锁,那么就意味着这个数据库的实例处于只读状态,是不能够进行写入操作的,其他所有的写入操作都会处于阻塞状态,

性能比较差,主要是用着数据的逻辑备份。如果觉得数据备份加全局锁的成功比较高,那也可以通过一个参数,single transaction,通过这个参数解决数据备份时的一致性问题。

表级锁:锁住整张表,锁的粒度大,发生锁冲突的概率也比较高。分为:表锁、元数据锁、意向锁。

表锁时,我们可以对整张表加读锁和写锁,把整张表锁住。而元数据锁它主要的目的是为了避免我们执行DML语句和DDL语句时候冲突的情况。意向锁的目的是规避行锁和表锁在加锁时的冲突问题,表锁在加锁的时候会逐行的查这张表的行锁情况,而

对于意向锁我们不用手动去加锁,它会自动加上对应的意向锁。

行级锁:锁住的是对应的行数据。锁的粒度是最小的,发生锁冲突的概率也是最低的,分为:行锁、间隙锁、临建锁。

行锁顾名思义锁的就是具体的行,而在行锁当中,共享锁和共享锁之间可以兼容,共享锁与排他锁是互斥的,排他锁与排他锁都是互斥的,间隙锁,锁住的是两条记录之间的间隙,临键锁它锁的是记录和间隙,简单理解为,临键锁就是行锁和间隙锁的组合。

那么间隙锁的出现主要是为了避免,我们多个事务并发操作时出现幻读现象。  

标签:总结,加锁,行锁,间隙,锁住,意向锁,mysql,表锁
From: https://www.cnblogs.com/wekenyblog/p/17204552.html

相关文章

  • 每日总结2023/3/10
    今天学习了AS中的复选框按钮效果如下  tv_text=findViewById(R.id.tv_text);bt_fa=findViewById(R.id.bt_fa);cb_sing=findViewById(R.id......
  • MySQL相关知识点整理
    1、关系型数据库与非关系型数据的区别?分类关系型数据库非关系型数据库概念关系型数据库(SQL)是由二维表及其之间的联系所组成的一个数据组织,最典型的数据结构是表,......
  • 使用PostgreSQL而不是MySQL存储中型数据有什么好处?
    我可以明确地回答.我们之所以选择Postgres,是因为它在操作上比MySQL更可靠,而当时公司的创始人相信SQL数据库的可移植性.随着年份的发展,我们发现了这一点,我们发现基本上,Post......
  • 记录--vue3+setup+ts 知识总结
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助vue3于2020年09月18日正式发布,2022年2月7日vue3成为新的默认版本距离vue3正式发布已......
  • LVS+keepalived+nginx+redis+mysql集群负载
    背景:梳理知识体系,关于架构,有做过一个项目,是关于双机热备高可用的方案。两台机器相对独立,两套一模一样且独立运行的系统,客户要求实现高可用。经过和架构部的商讨,通过lvs+ke......
  • 3月10日总结
    本文介绍基于Python中GDAL模块,实现MODIS遥感影像数据的读取、计算,并基于质量控制QC波段进行图像掩膜的方法。前期的文章PythonGDAL读取栅格数据并基于质量评估波段QA对指......
  • Python - else 语法总结
    else使用汇总。问题阅读别人代码,有点疑惑,精简后如下:defcode_example(arg=None):foriinrange(5):ifarg:breakelse:pr......
  • Java之BigDecimal 使用总结
     一、BigDecimal 产生   Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际......
  • K8s之MySQL实现数据持久化
    转载自:https://blog.51cto.com/u_14154700/2450932=============== 这个是一个只写配置及验证的博文。。。。。。博文大纲:1、搭建nfs存储2、创建PV3、创建PVC4、......
  • mysql 查看无主键的表
    --mysql查看无主键的表SELECT*FROMinformation_schema.`TABLES`tLEFTJOINinformation_schema.STATISTICSsONt.TABLE_SCHEMA=s.TABLE_SCHEMAANDt.t......