首页 > 数据库 >20 mysql 隔离性的底层原理

20 mysql 隔离性的底层原理

时间:2023-12-27 15:35:48浏览次数:32  
标签:事务 20 隔离 行锁 mvvc mysql 表锁 数据 底层

隔离性的原理:

1.0

隔离性是通过锁机制实现的。当一个事务修改数据时,需要先获取锁。其它事务要修改数据,必须等待之前的事务提交或者回滚,然后释放锁操作之后。

myisam只支持表锁,innodb支持表锁和行锁。因为表锁比较影响性能,所以通常情况下,使用行锁就可以了。

2.0

隔离性的另外一个方面,就是一个事务修改数据,影响另外一个事务读取数据。这是通过 mvvc 模型实现的。

mvvc模型,就是每行数据有个隐藏的数据列,其中包含事务id和指向undo log的指针,从而形成数据版本链条。readview则指定了读取哪个数据版本。

标签:事务,20,隔离,行锁,mvvc,mysql,表锁,数据,底层
From: https://blog.51cto.com/u_15292349/9000496

相关文章

  • 汉源高科120路128路电话光端机+1路百兆网 PCM语音电话光纤收发器光PCM128A-ETH
    128路电话光端机+1路百兆网络HY-128P1FL是汉源高科(北京)科技有限公司采用自主知识产权的大规模集成电路,应用时分复用技术,将以太网信号和电话信号混合编码后在一对光纤上传输。实现热线电话业务传输,传输通道为光传输通道。该机采用2U机架式设计,集成度高,体积小,功耗低,工作可靠,安装使用......
  • 18-mysql索引
    一、b+树每次查找数据时把磁盘IO次数控制在一个很小的数量级,最好是常数数量级。那么我们就想到如果一个高度可控的多路搜索树是否能满足需求呢?就这样,b+树应运而生(B+树是通过二叉查找树,再由平衡二叉树,B树演化而来)。1.索引字段要尽量的小:通过上面的分析,我们知道IO次数取决于b+数......
  • 17--MySQL优化
    MySQL优化一、优化工具:1、系统优化工具1.1 top (1)简介: 实时监控当前操作系统的负载情况的,每秒刷新一次状态,通常会关注三大指标(CPU、MEM、IO) (2)评判标准 (2.1) 整体的负载情况,判断标准,如果值非常高,只能告诉我们操作系统很繁忙 load average: 0.00, 0.00, 0.00 ......
  • 11-MySQL 存储引擎
    MySQL存储引擎可以理解为,MySQL的“文件系统”,(插件形式存在)只不过功能更加强大。mysql提供的存储引擎有InnoDB、MyISAM等TokuDB是第三方的存储引擎moardb,数据压缩比打,写入数据快,如果你的应用是读多写少的情况强烈建议使用此存储引擎innodb存储引擎的功能一、查看存储引擎1......
  • 13-Mysql备份恢复
    一、备份的类型冷备份:关闭数据、停止业务温备份:加锁备份热备份:在先备份,不会影响到也正常运行二、备份方式2.1逻辑备份:基于SQL语句的备份mysqldump建库、建表、数据插入基于二进制日志:数据库的所有变化类的操作基于复制的备份:将二进制日志实时传送到另一台机器并且恢复......
  • 面试官:MySQL 到底是 join 性能好,还是 in 一下更快呢?被问懵逼了…
    来源:https://juejin.cn/post/7169567387527282701先总结:数据量小的时候,用join更划算数据量大的时候,join的成本更高,但相对来说join的速度会更快数据量过大的时候,in的数据量过多,会有无法执行SQL的问题,待解决事情是这样的,去年入职的新公司,之后在代码review的时候被提出说,不要......
  • 12-Mysql的日志管理
    一、mysql常见日志二、错误日志配置方法:[mysqld]log-error=/data/mysql/mysql.log查看配置方式:mysql>showvariableslike'%log%error%';作用:记录mysql数据库的一般状态信息及报错信息,是我们对于数据库常规报错处理的常用日志,默认在data目录下三、一般查询......
  • 14-Mysql主从复制
    一、mysql复制原理1.1主从复制原理过程从库的I/Othread线程会读取masterinfo文件获取主库的user,passwordport信息然后还会获取上次获取主库二进制日志的位置如3640就是00003这个文件640这个位置,主库收到从库的请求后,会验证用户名密码等的合法性,然后问主库你有没有......
  • 04-Mysql多实例
    多实例就是多套线程和多各进程和多个预分配的内存结构配置思路启动多个mysqld进程规划多套数据规划多个端口规划多套日志路径配置例子1、创建多套目录mkdir-p/data/330{7,8,9}2、准备多套配置文件vi/data/3307/my.cnf[mysqld]basedir=/application/mysqldatadi......
  • 05-Mysql 用户管理
    一、MySQL用户管理用户定义:user主机范围使用某个用户从哪个(些)地址访问我的数据库用户的功能:1、用来登录mysql数据库2、用来管理数据库对象(库、表)权限功能:针对不同用户设置对不同对象管理能力selectupdatedeleteinsertcreatedrop。。。权限范围:......