TreeMind树图在线AI思维导图
当前位置:树图思维导图模板IT互联网互联网干货互联网MYSQL思维导图

互联网MYSQL思维导图

  收藏
  分享
免费下载
免费使用文件
树图周树人 浏览量:112022-11-08 20:44:37
已被使用0次
查看详情互联网MYSQL思维导图

简单介绍MYSQL的内容

树图思维导图提供 互联网MYSQL思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 互联网MYSQL思维导图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:043ddbffab6d33ca1bc85501c9add19c

思维导图大纲

MYSQL思维导图模板大纲

MVVC

作用范围

可重复读

第一次读的时候生成一个ReadView,之后的读都复用之前的ReadView

读已提交

在每次查询生成一个独立的ReadView

数据结构

聚簇索引记录中有两个必要的隐藏列

roll_pointer

每次对哪条聚簇索引记录有修改的时候,都会把老版本写入undo log中。这个roll_pointer就是存了一个指针,它指向这条聚簇索引记录的上一个版本的位置,通过它来获得上一个版本的记录信息。(注意插入操作的undo日志没有这个属性,因为它没有老版本)

trx_id

用来存储每次对每条聚簇索引记录进行修改的时候的事务id

实现原理

访问数据时

访问数据,获取数据中的事务id(获取的是事务id最大的记录),对比readview

如果在readview的左边(比readview都小),可以访问(在左边意味着该事务已经提交)

如果在readview的右边(比readview都大)或者就在readview中,不可以访问,获取roll_pointer,取上一个版本重新对比(在右边意味着,该事务在readview生成之后出现,在readview中意味着该事务还未提交)

开启事务时

创建readview,readview维护当前活动的事务id,即未提交的事务id,排序生成一个数组

MyISAM

表锁

分类

表共享写锁

会阻塞其他用户对同一表的读和写操作;

表共享读锁

不会阻塞其他用户对同一表的读请求,但会阻塞对同一表的写请求;

优先级

默认情况下,写锁比读锁具有更高的优先级:当一个锁释放时,这个锁会优先给写锁队列中等候的获取锁请求,然后再给读锁队列中等候的获取锁请求。

可以设置改变读锁和写锁的优先级:

通过指定启动参数low-priority-updates,使MyISAM引擎默认给予读请求以优先的权利。 通过执行命令SET LOW

优缺点

开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

MyISAM加表锁方法

MyISAM执行(SELECT)前会自动给涉及的表加读锁

MyISAM执行(UPDATE、DELETE、INSERT 等)前会自动给涉及的表加写锁

在自动加锁的情况下,MyISAM 总是一次获得 SQL 语句所需要的全部锁,这也正是 MyISAM 表不会出现死锁(Deadlock Free)的原因。

InnoDB

行锁

分类

排他锁(X

允许获得排他锁的事务更新数据,阻止其他事务取得相同数据集的共享读锁和排他写锁。

共享锁(S)

允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。

优缺点

开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。

锁模式兼容

表锁

分类

意向排他锁(X)

事务打算给数据行加行排他锁,事务在给一个数据行加排他锁前必须先取得该表的 IX 锁。

意向共享锁(S)

事务打算给数据行加行共享锁,事务在给一个数据行加共享锁前必须先取得该表的 IS 锁。

概括思维导图模板大纲

概括思维导图模板大纲

相关思维导图模板

深入浅出MySQL数据库思维导图

树图思维导图提供 深入浅出MySQL数据库 在线思维导图免费制作,点击“编辑”按钮,可对 深入浅出MySQL数据库  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:4973c1019c6e392a02790e406f45b609

MYSQL数据库思维脑图思维导图

树图思维导图提供 MYSQL数据库思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 MYSQL数据库思维脑图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:10c07e28511056c57eb264a3bfa683f6