当前位置: 首页 > news >正文

用mvc做网站报告自己的电脑做服务器搭建网站

用mvc做网站报告,自己的电脑做服务器搭建网站,南通 网站建设,平面设计公司哪家好问题:mysql的事务隔离级别和各自解决的问题? 事务的特性:原子性、一致性、隔离性、持久性 mysql的隔离级别分为 RU(read uncommitted)读未提交。 所有事务能看到其他事务未提交的数据,也称之为脏读&#xf…

问题:mysql的事务隔离级别和各自解决的问题?
事务的特性:原子性、一致性、隔离性、持久性
mysql的隔离级别分为
RU(read uncommitted)读未提交。

所有事务能看到其他事务未提交的数据,也称之为脏读(Dirty Read)。

RC (read committed) 读已提交。

满足事务的特性ACID,读到的是事务已经提交的数据。但是不可重复读:事务执行过程中,前后两次查询可能因为别的事务提交相同数据修改而结果不一致。也有MVCC,不过生成Read View的时机是每次查询时生成新的。

RR(repeat read) 可重复读

mysql默认的事务隔离级别,通过MVCC和锁机制实现可重复读。使用间隙锁和行锁解决幻读问题。只有在事务第一次进行select时生成read view视图。

Serializable 串行化

隔离级别最高的事务,每个事务排序执行,没有脏读、幻读、不可重复读的问题。

MVCC:多版本链并发控制,通过可见性规则和版本链实现事务的差异化访问。
行记录结构:

字段含义
DB_TRX_ID当前行的事务id
DB_ROLL_PTR回滚指针,指向undo日志段

Read View:读视图

字段含义
m_ids活跃事务id列表
min_trx_id活跃事务中最小事务id
max_trx_id系统下一个事务id,相当于max(m_ids)+1
creator_trx_id当前事务id

Read View创建时机:
read committed:读提交事务隔离级别下,是在每次select时创建;
repeat read:可重复读事务隔离级别下,是在第一次select时创建。

注意:repeat read 模式下执行update流程如下:
1.不会使用快照读(Read view),而是读取最新的主键索引所在行的记录;
2.若存在行锁或间隙锁,需等待锁释放
3.加排他锁(X锁)​​阻止其他事务修改或读取该行,加间隙锁(Gap Lock)​​防止其他事务在索引间隙插入新数据(解决幻读)
4. 生成新版本:修改数据后,生成新的Undo Log记录旧版本,更新聚簇索引的DB_TRX_ID为当前事务ID

事务的状态:已提交、已回滚、运行中

MVCC工作流程:

  1. 事务A启动,指定事务A的id=108;(如果是只读事务,不分配id,id=0);
  2. 事务A执行select * from user where id = 3;
  3. 事务A创建Read view,如下:
字段
m_ids[90,104,110]
min_trx_id90
max_trx_id111
creator_trx_id108

事务可见性:

行记录事务id是否可见不可见原因
110不可见事务id在m_ids活跃事务id数组中
108可见事务id为当前事务
111不可见事务id为max_trx_id,读视图创建后产生的事务
89可见事务id不在活跃事务数组中,并且小于最小活跃事务,说明是当前事务创建前已提交的事务
100可见事务id不在活跃事务数组中,并且小于最大活跃事务,说明是当前事务创建前已提交的事务
  1. 事务A执行update user set name= ‘newname‘ where id = 3;
    此时在id=3的行记录中生成版本链(版本链中包含未提交的事务)。
  2. 事务提交

不可重复读和幻读
不可重复读:事务中的前后两次查询因为其他事务的修改导致查询结果不一致。使用MVCC解决。
幻读:事务中前后两次查询因为其他事务插入数据而导致查询结果不一致。使用行锁和间隙锁解决。
当前读和快照读
快照读在事务第一次查询的时候生成read view,后面每次查询结果一致。
当前读:读的是主键索引上已提交最新事务id。
innodb锁的实现
行锁基于索引实现。
主键索引上加锁,会作用于主键索引记录节点。
普通索引上加锁,先在普通索引上加锁,再去主键索引上加锁。

  • 当使用主键索引或者唯一索引,并且条件精确匹配,只会加行锁,不会加间隙锁。
  • 当使用普通索引时,会加行锁和间隙锁。
  • 当没有命中索引时,加表锁。
    sql调优技巧
  • 优先使用主键索引,减少回表操作,降低锁竞争
  • 确保命中索引,避免全表扫描
http://www.dtcms.com/a/478703.html

相关文章:

  • 更换网站模板html所有标签大全
  • 软件模拟存储,SCSI映射StarWind5.4 企业版
  • DFS和BFS算法和回溯算法
  • c++ 标准模板库练习
  • 购物网站建设费用wordpress调用python脚本
  • 基于深度学习的数字图像分类实验与分析
  • 图像视觉——颜色识别
  • 扬州网站建设哪家公司好电商运营适合女生吗
  • HTML应用指南:利用POST请求获取全国兴业银行网点位置信息
  • Excel处理控件Aspose.Cells教程:使用 Python 将 HTML 转换为 Excel
  • 菏泽做网站的公司可玩儿小程序可以加盟么
  • 阿里云发布《AI 原生应用架构白皮书》
  • 如何在百度上注册自己的网站做网站运营有提成吗
  • 分布式数据库架构:从分库分表到NewSQL实战
  • Java的双重检查锁机制(DCL)与懒加载的单例模式
  • Qt代码-QVector向量数组的增删改查插入统计复制
  • 深圳建设门户网站博客wordpress
  • 免费做网站的好不好大理悦花轩客栈在哪些网站做推广
  • 语义与认知中的循环解释悖论及其对人工智能自然语言处理深层语义分析的影响与启示
  • 购物类网站百度关键词搜索排名
  • 微信公众号的跳转网站怎么做外贸网站要先备案吗
  • 【VSCode+WSL】开发环境随身携带:我的VSCode+cpolar远程工作站实战
  • 长沙做最好网站东营建设信息网的网址
  • Kubernetes Pod 全面详解(基础 + 进阶)
  • JAVA算法练习题day40
  • 电子电气架构 --- 车载多系统架构
  • JVM 垃圾回收算法
  • 宁波企业如何建网站网站 提示危险
  • 嵌入式开发--STM32H7系列的硬件SPI的读写函数问题
  • printk 使用技巧