安远县建设局网站用angularjs做的网站

pingmian/2026/1/27 3:32:59/文章来源:
安远县建设局网站,用angularjs做的网站,公司网络搭建与部署,商务网站模块设计时前台基础设施建设文章目录 1. MVCC多版本并发控制机制2. BufferPool缓存机制 1. MVCC多版本并发控制机制 Mysql可以在可重复读隔离级别下可以保证事务较高的隔离性#xff0c;这个隔离性是由MVCC机制来保证的#xff0c;对一行数据的读和写两个操作默认是不会通过加锁互斥来保证隔离性#… 文章目录 1. MVCC多版本并发控制机制2. BufferPool缓存机制 1. MVCC多版本并发控制机制 Mysql可以在可重复读隔离级别下可以保证事务较高的隔离性这个隔离性是由MVCC机制来保证的对一行数据的读和写两个操作默认是不会通过加锁互斥来保证隔离性避免了频繁加锁互斥而在Mysql在读已提交和可重复读隔离级别下都实现了MVCC机制。 undo日志版本链与read view机制详解 undo日志版本链是指一行数据被多个事务依次修改过后在每个事务修改完后Mysql会保留修改前的数据undo回滚日志并且用两个隐藏字段trx_id事务ID和roll_pointer会滚指针把这些undo日志串联起来形成一个历史记录版本链。 trx_id表示对数据修改的事务的ID roll_pointer指向被修改数据的上一个版本 在可重复读隔离级别当事务开启执行任何查询sql时会生成当前事务的一致性视图read-view该视图在事务结束之前都不会变化(如果是读已提交隔离级别在每次执行查询sql时都会重新生成)这个视图由执行查询时所有未提交事 id数组(数组里最小的id为min_id)和已创建的最大事务id(max_id)组成事务里的任何sql查询结果需要从对应版本链里的最新数据开始逐条跟read-view做比对从而得到最终的快照结果。 注意begin/start transaction命令并不是一个事务的起点在执行到它们之后的第一个修改操作InnoDB表的语句时事务才算是真正的启动此时事务会向Mysql申请事务IDmysql内部是严格按照事务的启动顺序来分配事务ID的 版本链比对规则: 如果 row 的 trx_id 落在绿色部分( trx_idmin_id )表示这个版本是已提交的事务生成的这个数据是可见的;如果 row 的 trx_id 落在红色部分( trx_idmax_id )表示这个版本是由将来启动的事务生成的是不可见的(若 row 的 trx_id 就是当前自己的事务是可见的);如果 row 的 trx_id 落在黄色部分(min_id trx_id max_id)那就包括两种情况 a. 若 row 的 trx_id 在视图数组中表示这个版本是由还没提交的事务生成的不可见(若 row 的 trx_id 就是当前自 己的事务是可见的); b. 若 row 的 trx_id 不在视图数组中表示这个版本是已经提交了的事务生成的可见。 read-view执行原理案例分析 这里首先列出了五个事务的sql语句执行情况如下 由上图可见总共有五个事务事务的id为100,200,300,1,2下面我们就来逐步分析 首先事务300执行update account set name lilei300 where id 1;然后提交。接着事务ID为1的事务执行select name from account where id 1; 我们可以很简单的看出查询结果为lilei300那为什么会是lilei300。首先我们可以看出此时的undo.log的日志版本链的情况是这样的 其中蓝色为最新的数据红色为老数据。然后mysql会维护一个事务集如下 然后mysql会从日志版本链的最新的数据开始向下遍历这个例子先从上面第一个蓝色的开始取出其事务ID为300到事务集合中去比对发现位于黄色的区域即有可能还是未提交然后判断是否在事务ID的read-view数组中该数组前面说过是由活跃事务的ID数组以及最大已提交事务组成目前由第一张事务的执行情况图我们可以看出目前事务ID为1的read-view为[100,200],300构成而300没在read-view的活跃数组中所以300对数据进行的更改对事务1是可见的所以日志版本链就不需要向下遍历了查询的结果即为lilei300。 然后ID为100的事务又执行了两条更新语句分别为update account set name lilei1 where id 1;和update account set name lilei2 where id 1;接着ID为1的事务再次执行了查询select name from account where id 1; 同样从会滚日子链开始分析蓝色同样为最新的数据红色为老数据目前的日子版本链的情况如下所示 首先从最新的数据开始便利日志版本链首先拿到ID为100的数据比对事务集合其同样落在黄色区域然后事务ID1比较其readview发现其落在了活跃数组[100,200]中注意除非一些特殊情况ID为1的事务对数据进行了一些修改其readview在整个过程中一般是不变的虽然每次执行一次查询语句都会重新生成read-view所以其对ID为1的事务是不可见的。然后接着向下遍历知道遍历到ID为300的事务发现其是可见的所以查询到的数据同样是lilei300。后面的过程同样是按照这个过程分析。 mysql通过这个机制在RR隔离级别下实现了事务的可重复读而不用加锁。而在读已提交的情况下Mysql同样实现了MVCC机制不同于RR级别在读已提交的隔离级别下每当一个事务被提交其它事务相应的read-view会及时更新。 2. BufferPool缓存机制 InnoDB引擎SQL执行的BufferPool缓存机制如下所示 对上图进行分析 首先客户端执行sql语句update t set namezhuge666 where id1然后经过连接器进行客户端的权限验证判断该客户端是否有修改该条数据的权限然后通过分析器对sql语句进行词法分析接着经过优化器来生成sql执行计划以及选择合适的索引最后来到执行器开始真正执行sql(InnoDB层 首先InnoDB会将id为1的数据所在的页加载到BufferPool中然后将要更新的那条数据旧的值写入到undo日志中用于后期会滚然后更新BufferPool中的缓存数据然后将更新情况写入到redo日志缓存中客户端准备提交事务首先redo日志写入到磁盘binlog主要用于回复数据库磁盘中的数据日志写入磁盘写入commit标记到redo日志文件中提交事务完成该标记为了保证事务提交后redo于binlog日志的一致性。Mysql后台IO线程随机以page为单位将更新后的数据写入到磁盘 以上便是该sql语句执行的整个过程但对于上面的过程可能还会存在下面这些问题 InnoDB体系结构是什么样子的 InnoDB存储引擎有多个内存块可以认为这些内存块共同组成了一个大的内存池负责如下工作 维护所有进程/线程需要访问多个内部数据结构缓冲磁盘上的数据方便快速读取bufferPool同时在对磁盘文件的数据修改之前在这里缓存重做日志缓存redo.log) … 后台线程的主要作用是负责刷新内存池中的数据保证缓冲池中的内存缓存是最近的数据。此外将修改的数据文件刷新到磁盘文件同时保证在数据库发生异常的情况下InnoDB能够恢复到正常运行的状态。 Mysql的bufferpool的组成 3. Mysql是如何对缓冲池进行管理 通常来说数据库中的缓冲池是通过LRU算法来进行管理的即最频繁使用的页在LRU列表的前端而最少使用的页在LRU列表的尾端。但InnoDB使用的并不是朴素的LRU算法而是在LRU列表中加入了midpoint的位置midpoint将LRU列表的数据页分为热数据和冷数据两部分。这部分还是比较复杂的 rode日志的刷新时机 Master Thread每一秒将重做日志缓存刷新到重做日志文件每个事务提交时会将重做日志缓存刷新到重做日志文件当重做日志缓存剩余空间下雨1/2时重做日志缓存刷新到重做日志文件 为什么Mysql不能直接更新磁盘上的数据而且设置这么一套复杂的机制来执行SQL了? 因为来一个请求就直接对磁盘文件进行随机读写然后更新磁盘文件里的数据性能可能相当差。因为磁盘随机读写的性能是非常差的所以直接更新磁盘文件是不能让数据库抗住很高并发的。 Mysql这套机制看起来复杂但它可以保证每个更新请求都是更新内存BufferPool然后顺序写日志文件同时还能保证各种异常情况下的数据一致性。 更新内存的性能是极高的然后顺序写磁盘上的日志文件的性能也是非常高的要远高于随机读写磁盘文件。 正是通过这套机制才能让我们的MySQL数据库在较高配置的机器上每秒可以抗下几千的读写请求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/85303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站开发怎样将信息栏到最底部深圳做网站公司华

Eclipse修改注释的方法:  窗口-》首选项-》java-》代码样式-》代码模板-》注释-》方法-》确定,下面就可以修改了  Netbeans修改注释的方法:  工具->模板 打开 看见那一排列表没有 展开Java 选择Java类 点击 在编辑器中打开 …

北京南站在哪个区哪个街道运维35岁以后会失业吗

随着电子行业的发展,对电源的要求体积更小、可靠性更高。加上高频软开关技术、半导体工艺和封装技术的进步,电源模块的功率密度越来越大,转换效率也越来越高,应用更加简单了。 电源模块与分立式方案相比,优势在哪里&am…

如何使用二级域名做网站站长工具域名查询

题目描述在一个字符串(0<字符串长度<10000&#xff0c;全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1&#xff08;需要区分大小写&#xff09;.解析暴力解法&#xff0c;时间复杂度是 。# -*- coding:utf-8 -*- class Solution:def Fi…

高端网站建设专业公司网站建设维护教程

oracle 环境下&#xff0c;调用方法NumberCodeGenerateManager.OcuppyModelNumberCodesAfterSaved(ObjectID, modelID, ds)进行编号占用。当DataSet的数据行数〉1000时&#xff0c;会报语法错误&#xff1a;ORA-01795: 列表中的最大表达式数为 1000。跟踪语句如下&#xff1a;u…

凡科建设网站如何网站开发商可以代刷好评吗

文章目录 1、位运算符2、特殊关键字的使用&#xff1a;break、continue3、成员变量&#xff08;类的属性&#xff09;和局部变量的区别4、this关键字5、super关键字6、抽象类与abstract关键字7、接口8、Java权限修饰符 1、位运算符 注意&#xff1a; ①右移根据最高位是0&#…

单位网站建设存在问题情况汇报wordpress 汉语字体

在Ubuntu中使用Git时&#xff0c;可使用命令行的git diff命令来对比两次提交的差异&#xff0c;但是这种对比查看方式无法直观地查看修改的差异&#xff0c;在对比和查看时不太方便。 可以使用vimdiff作为Git diff的对比工具&#xff0c;这样就方便了许多&#xff0c;Git的配置…

池州做网站移动通信网站建设

ncverilog仿真详解发表在ASIC/FPGA/汇编, 学习笔记, 编程开发 | 由阿布 | 十一月26, 2011 | 0标签: ncverilog, 仿真数位IC工具简介——Simulator 工具ModelSimModelSim是Mentor公司所推出的软体, 主要用来当作VHDL的模拟器, 也是目前CIC在VHDL方面的主要的模拟软体;但ModelSim…

跳转网站正在建设中wordpress素才

1.正常配置vmware虚拟机基础环境 2.启动虚拟机&#xff0c;会先到efi network&#xff0c;等待几分钟 3.进入boot manager&#xff0c;选择启动方式&#xff0c;记得提示CD启动的时候需要按回车&#xff0c;不然又会回到这个界面 4.选择安装版本为桌面版&#xff08;开始直接…

企业网站能提供哪些服务深圳市龙华区属于哪个区

Abstract 大型语言模型 (LLM) 通过利用思维链 (CoT) 提示生成中间推理链作为推断答案的基本原理&#xff0c;在复杂推理方面表现出了令人印象深刻的性能。然而&#xff0c;现有的 CoT 研究主要集中在语言情态上。我们提出了 Multimodal-CoT&#xff0c;它将语言&#xff08;文本…

企业精髓八个字关键词 优化 网站

C 变量作用域 一般来说有三个地方可以定义变量&#xff1a; 在函数或一个代码块内部声明的变量&#xff0c;称为局部变量。在函数参数的定义中声明的变量&#xff0c;称为形式参数。在所有函数外部声明的变量&#xff0c;称为全局变量。 作用域是程序的一个区域&#xff0c;…

宝山网站建设哪家好网页制作模板 html

点project 关闭防火墙才可以让别人访问自己 转载于:https://www.cnblogs.com/feathe/p/6853491.html

上海专业网站建设流程东莞关键词排名提升

工作中能提升效率也都是大家所想的&#xff0c;对于设计师的一个设计过程中&#xff0c;可能想怎么样可以更快呀&#xff0c;是哪个步骤慢了呢&#xff1f; 这样的结果只能说会很多&#xff0c;但是建模这个步骤&#xff0c;肯定是有多无少的。 为了让模型更加逼真&#xff0c…

门户网站建设背景wordpress新增用户字段

一个配置恰当的mongodb 分片集群不会有单点失效。 本章节描述了集群服务器中可能出现的故障&#xff0c;及相应的对策。 1. 某个mongos路由进程故障 每一个mongos会运行每一台应用服务器上面&#xff0c;该应用服务器只能通过这个mongos进程和集群进行通信。mongos进程不是…

网站开发建设技术规范书军事新闻今天

CSDN每日一练 |『生命进化书』『订班服』『c++难题-大数加法』2023-09-06 一、题目名称:生命进化书二、题目名称:订班服三、题目名称:c++难题-大数加法一、题目名称:生命进化书 时间限制:1000ms内存限制:256M 题目描述: 小A有一本生命进化书,以一个树形结构记载了所有生…

中国铁道工程建设协会查证网站购物网站首页源码

zookeeper 集群 1、zookeeper 集群说明 initLimit 是Zookeeper用它来限定集群中的Zookeeper服务器连接到Leader的时限 syncLimit 限制了follower服务器与leader服务器之间请求和应答之间的时限 服务器名称与地址&#xff1a;集群信息&#xff08;服务器编号&#xff0c;服务器…

自动做标题网站南通seo网站排名优化

联系前面所学的知识我们知道&#xff0c;移动性管理主要分为两大类&#xff1a;空闲状态下的移动性管理、连接状态下的移动性管理。我们今天来详细了解他们的工作原理~ 目录 移动性管理分类 1、空闲状态下的移动性管理 2、连接状态下的移动性管理 手机选择天线的原则 4G天…

网站建设制作专业开发定制中国百年建筑网官网

服务器数据恢复环境&#xff1a; 服务器使用磁盘柜RAID卡搭建了一组riad5磁盘阵列。服务器上层分配了一个LUN&#xff0c;划分了两个分区&#xff1a;sdc1分区和sdc2分区。通过LVM扩容的方式&#xff0c;将sdc1分区加入到了root_lv中&#xff1b;sdc2分区格式化为XFS文件系统。…

python 做网站开发个人网站转为企业网站

昨天在知乎上刷到一个热门问题:程序员需要达到什么水平才能顺利拿到 20k 无压力&#xff1f;其中一个最热门的回答是&#xff1a;“其实&#xff0c;无论你是前端还是后端、想进大厂还是拿高薪&#xff0c;算法都一定很重要。”为什么&#xff0c;算法会如此重要&#xff1f;不…

flash型的著名网站网站增加栏目费用

简介 SVM是一种二类分类模型&#xff0c;其基本模型定义为特征空间上的间隔最大的线性分类器&#xff0c;即支持向量机的学习策略便是间隔最大化&#xff0c;最终可转化为一个凸二次规划问题的求解。或者简单的可以理解为就是在高维空间中寻找一个合理的超平面将数据点分隔开来…

望京网站建设单位邮箱怎么申请

点击蓝字关注我们因公众号更改推送规则&#xff0c;请点“在看”并加“星标”第一时间获取精彩技术分享来源于网络&#xff0c;侵删1、分治法概念&#xff1a;将一个难以直接解决的大问题&#xff0c;分割成一些规模较小的相同问题&#xff0c;以便各个击破&#xff0c;分而治之…