- 博客(26)
- 收藏
- 关注
原创 九、InnoDB引擎-MVCC
MySQL中的MVCC机制通过多版本控制实现非阻塞读操作。主要包含当前读(加锁读取最新数据)和快照读(读取历史版本数据)。实现依赖三个隐式字段(事务ID、回滚指针、隐藏主键)、undolog版本链(记录数据变更历史)和ReadView(决定数据可见性)。不同隔离级别下ReadView生成时机不同:RC每次快照读都生成,RR仅在第一次生成。该机制有效解决了读写冲突问题,在保证数据一致性的同时提高了并发性能。
2025-11-13 15:09:29
654
原创 八、InnoDB引擎-事务原理
事务是数据库操作的不可分割单元,具有四大特性:原子性(操作全成功或全失败)、一致性(保持数据一致状态)、隔离性(独立执行不受干扰)和持久性(提交后永久生效)。通过redolog实现持久性,记录数据页物理修改,用于故障恢复;undolog则记录数据修改前的逻辑信息,提供回滚和MVCC支持。undolog在事务提交后不会立即删除,而是存储在回滚段中供后续使用。这些机制共同保障了数据库事务的可靠性和并发控制能力。
2025-11-07 10:20:08
351
原创 七、InnoDB引擎-架构-后台线程
InnoDB引擎通过多线程机制优化数据库性能:MasterThread为核心调度线程,负责数据刷新、缓存合并和undo页回收;IOThread处理异步IO请求回调;PurgeThread回收已提交事务的undo日志;PageCleanerThread辅助MasterThread刷新脏页以减轻其负载。这种分工协作显著提升了InnoDB的并发处理能力和IO效率。
2025-11-06 09:34:45
208
原创 六、InnoDB引擎-架构-结构
本文介绍了InnoDB存储引擎的逻辑存储结构和内存结构。逻辑存储结构包括表空间、段、区、页和行,采用索引组织表形式,数据段为B+树叶节点。内存结构包含缓冲池(管理三种状态的Page页)、更改缓冲区(优化二级索引操作)、自适应哈希索引和日志缓冲区。磁盘结构则涵盖系统表空间、独立表空间、通用表空间、撤销表空间等组件,以及双写缓冲区和重做日志等保证数据一致性的机制。该架构通过内存缓冲与磁盘存储的协同工作,有效提升了数据库性能并确保事务的持久性和恢复能力。
2025-11-05 15:19:09
924
原创 五、关于mysql中的锁
全局锁的力度是最大的,全局锁对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句,DDL语句,已经更新操作的事务提交语句都将被阻塞。1.行锁(Record Lock):锁定单个行记录的锁,防止其他事务对此行进行update和delete,在RC,RR隔离级别下都支持(共享锁和排他锁)为了避免DML在执行时,加的行锁与表锁的冲突,在InnoDB中引入了意向锁,使得表锁不用检查每行数据是否加锁,使用意向锁来减少表锁的检查。在RR隔离级别下支持。锁定粒度大,发生锁冲突的概率最高,并发度最低。
2024-11-16 15:57:24
1064
1
原创 六、vue进阶知识点
单向数据流:父级 prop 的数据更新,会向下流动,影响子组件。① 子$emit 发送消息 ②父中给子添加消息监听 ③ 父中实现处理函数。①.父子关系(图中B和C组件和A组件构成父子关系)②.非父子关系(组件B与C构成非父子关系)① 父中给子添加属性传值 ② 子props 接收 ③ 使用。为组件的prop指定验证要求,不符合要求,控制台就会有。①父组件通过props将数据传递给子组件。②子组件利用$emit通知父组件修改更新。Prop定义:组件上注册的一些自定义属性。不同的组件关系和组件通信方案分类。
2024-08-31 13:15:27
1590
1
原创 五、工程化开发和脚手架Vue CLI
Vue CLl 是 Vue 官方提供的一个可以帮助我们快速创建一个开发 Vue 项目的标准化基础架子。【集成了 webpack 配置),其实就是生成一个目录,内置了许多工具。好处:1.开箱即用,零配置2.内置 babel等工具3.标准化重点!!!!使用步骤:1.全局安装(一次):yarn globaladd @vue/cli 或 npmi @vue/cli -g2.查看 Vue 版本:vue --version。
2024-08-30 13:37:53
1630
原创 三、v-show和v-if的区别
2.语法:v-show="表达式" 表达式的值为true显示,false隐藏。2.语法:v-show="表达式" 表达式的值为true显示,false隐藏。v-else 和v-else-if 简单。1.作用:控制元素显示隐藏(1.作用:控制元素显示隐藏。
2024-08-27 16:10:42
185
原创 二、Vue响应式特性
在Vue中,指令是一种特殊的HTML属性,以 "v-" 开头,并通过一种特殊的语法与Vue实例的数据进行绑定。例如,你可以使用v-bind指令将元素的属性绑定到Vue实例的数据,使用v-on指令监听DOM事件并执行相应的逻辑,还可以使用v-if和v-for等指令控制元素的显示和循环渲染。例如msg数据绑定到了app这个盒子上,msg的数据改变的话,页面会立即改变,这样我们就能将大量的精力用在核心业务逻辑上,而不是数据的渲染上。②修改数据:“实例.属性名” = “值”
2024-08-27 15:44:24
539
原创 Git的使用教程及常用语法03
以上的代码,我创建了两个日志文件 access.log 和orther.log, 然后把access.log放入.gitignore文件中,提交发现暂存区中只剩下orther.log没有被添加。因为我们只是删除了工作区的文件,并没有删除暂存区的文件,可以使用git ls -files这个命令来查看暂存区中的内容。ignore是忽略的意思,这个文件的作用也就是可以让我们忽略掉一些不应该被加入到版本库的文件。在github上存在很多的过滤文件模板,在新建仓库的时候可以使用,可以根据自己的需要修改。
2024-08-23 10:33:06
722
原创 Git的使用教程及常用语法02
另外 git log 后面还可以添加一些参数,例如 git log --oneline ,这样就只显示提交的ID和提交信息了。每次提交都有一个唯一的提交ID,就是commit后面的16进制的一串字符串,还有每次提交的作者和邮箱以及提交的时间。git status 可以查看当前仓库的状态信息,例如包含哪些分支,有哪些文件以及这些文件当前处在怎样的一个状态。我们需要知道git commit 这个命令只会提交暂存区中的文件,而不会提交工作区中的其他文件。
2024-08-22 15:49:33
1039
原创 Git的使用教程及常用语法01
git安装可以到官网上下载并安装,一直点点点就行安装成功后可以在任意地方右键以终端的形式打开。打开命令终端,输入git -v 查看git版本。
2024-08-22 13:47:49
487
原创 python之如何将程序打包成exe可执行文件
注意事项:支持win(建议使用python3.6.8)配合虚拟环境打包1.在windows中创建虚拟环境+项目2.开发......3.开发完毕后4.打开win虚拟机5.创建虚拟环境6.安装项目依赖7.安装pyinstaller产出: XXX.exe。
2024-08-19 16:38:51
956
原创 django框架--03django中的请求与响应
当浏览器向服务器发送请求时,可以发送GET请求,也可以发送Post请求,同时也可以传送一些消息。当然发送请求不一定通过浏览器,例如爬虫。
2024-08-06 13:28:56
812
原创 django框架--02django项目的部署
说明:本地项目中,并不是所有的文件都需要上传,运行产生的文件就没必要上传,所以先配置一下git文件 .gitignore 配置不想上传的文件。将项目push到git仓库,服务器上就相当于我们本地主机一样,下载个git,通过git clone下载项目。git代码仓库:gitHub,gitee,gitlab 我这里使用gitee。git官方地址:https://git-scm.com/downloads。使用xshell不太方便,在企业中大部分使用的都是git。2.填写项目名称等信息后点击创建。
2024-08-03 16:39:07
1540
原创 Flask框架内容基础4 连接数据库及orm模型与表的映射
Flask-SQLAlchemy简化了在Flask应用中使用SQLAlchemy的过程,提供了一些方便的功能,例如自动管理数据库会话和事务,以及提供了一些Flask特定的扩展,如Flask-Migrate用于数据库迁移。ORM框架提供了一系列的API和工具,用于执行数据库的增删改查操作,并处理对象与数据库之间的映射和转换。然后输入安装命令时,显示需要的工具库已经存在,造成这样的原因是由于使用python虚拟解释器时,当前解释器内没有该工具库,但是在其他的环境中,已经下载了这个工具库。
2024-07-31 16:56:50
615
原创 django框架--01django的安装
默认项目的文件介绍:django-study 【很重要:项目的管理,启动项目,创建app,数据管理】【默认,不用动】-- django-study 【与项目同名的文件夹】-- asgi.py 【接收网络请求(异步)】 【默认,不用动】-- settings.py 【项目的配置文件:例如数据库,注册app等等】【经常操作的文件】
2024-07-29 14:03:45
859
原创 Flask框架内容基础3 -- 使用redis实现异步任务队列
前面所了解的所有请求都是同步的,那么当面临异步请求时,应该怎么做?调用者:携带参数发送请求API:接收请求并生成一个任务ID,接下来:返回给调用者+放到任务队列中worker:等待redis队列(List),一旦接收到任务,就执行并将结果返回到结果队列(Hash)调用者:等待n秒后,携带任务ID再次发送请求,获取结果API:接收任务ID,根据ID去结果队列(Hash)中获取。
2024-07-27 15:49:30
1449
2
原创 Flask框架内容基础2
在python中pymysql库是操作数据库的,下面是关于pymysql的一段介绍(可不看):pymysql是Python中用于连接和操作MySQL数据库的一个库。它是在Python的基础上封装了MySQL的连接、查询和管理等功能,通过pymysql可以方便地在Python程序中与MySQL数据库进行交互。使用pymysql可以实现数据库的增删改查操作,执行SQL语句,获取查询结果等。
2024-07-27 14:29:33
461
原创 Flask框架内容基础1
Flask是一个轻量级的Python Web框架,由Armin Ronacher开发,用于构建简单而灵活的Web应用程序。它使用Python的Werkzeug工具包和Jinja2模板引擎,并且具有简单易用的API。总的来说,Flask是一个简单、灵活和易学的Python Web框架,适用于各种规模的项目。它是一个流行的选择,因为它提供了一种快速开发Web应用程序的方式,同时具有足够的灵活性和可扩展性。
2024-07-27 13:07:17
452
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅