avatar
文章
56
标签
17
分类
19
首页
时间轴
标签
分类
KiCheng's Blog
首页
时间轴
标签
分类

KiCheng's Blog

MIT6.5830-Lab4
发表于2024-08-27|MySQL
MIT6.5830 的数据库课程。Lab4 主要是完成数据库事务以及锁机制,在 Lab 中只是考虑设计了 page 级别锁。 Exercise1 Exercise2 Exercise3 Exercise4 Exercise5 为了简化工作,Lab4采用了NO STEAL/FORCE缓冲区策略,不需要记录undo log和redo log日志(Lab6中完成): NO STEAL:不允许一个未提交的事务将修改更新到磁盘,即磁盘中不会存在uncommitted数据,因此无需回滚操作,不需记录undo log。 FORCE:事务在提交之后必须将所有更新立刻持久化到磁盘(产生很多随机写,效率低),但无需记录redo log。 背景知识事务事务:事务是一组以原子方式执行的数据库操作(读取、插入、删除),是不可分割的。 事务的四大特性(ACID) 原子性(Atomicity):事务是一个不可分割的单位。 一致性(Consistency):事务执行是从一个一致状态到另一个一致状态,一致指的是:①...
MIT6.5830-Lab3
发表于2024-08-22|MySQL
MIT6.5830 的数据库课程。Lab3 主要是完成数据库查询优化的成本优化器。 Exercise1 Exercise2 Exercise3 ...
MIT6.5830-Lab2
发表于2024-08-15|MySQL
MIT6.5830 的数据库课程。Lab2 主要是完成查询的连接和过滤、实现聚合下的查询操作、对表的插入删除以及实现数据库中非常重要的 LRU 页面置换算法。 任务目录 Exercise1:实现查询的连接和过滤 Exercise2:实现聚合操作MIN、MAX、COUNT、SUM、AVG Exercise3:实现修改表的方法,完成添加和删除 Exercise4:实现Insert和Delete操作符 Exercise5:实现BufferPool的页面置换算法 Exercise1 实现Predicate、JoinPredicate、Filter、Join Predicate类Filter的辅助类,用于筛选满足条件的tuple:将tuple中的字段与指定字段进行比较,实现对单个tuple的过滤操作(比较逻辑有==、>=、<=、>、<、!=、LIKE等)。 参数: 指定的比较字段(也是Field.compare()的参数):private Field operand; tuple中指定字段对应字段的索引:private...
MIT6.5830-Lab1
发表于2024-08-06|MySQL
前段时间学习一下 MySQL,正好准备一个手撕轮子项目,就准备完成这个 MIT6.5830 的数据库课程。Lab1 主要是完成一些简单的数据库定义以及实现简单的全表扫描。 任务目录 exercise1:实现元组以及元组属性字段 exercise2:实现数据库目录,包含数据库现有的表信息 exercise3:实现BufferPool,将内存读取过的数据页缓存下来 exercise4:实现页面id、数据记录id以及Page类 exercise5:实现磁盘文件的接口HeapFile,通过HeapFile可以从磁盘读写数据 exercise6:实现全表扫描 Exercise1 实现Tuple、TupleDesc两个类 在数据库中,行被称为元组(tuple)或记录(record),列称为字段(field)。tuple元组在数据库中是一组Field对象的集合。 TupleDesc类 参数: private CopyOnWriteArrayList<TDItem>...
Java集合
发表于2023-07-17|Java基础
复习一下Java的集合:分为单列集合和双列集合,单列集合有List和Set两类,双列集合是Map集合。List接口的实现类有ArrayList, LinkedList;Set和Map可以配合着学,主要有HashSet–HashMap, LinkedHashSet–LinkedHashMap, TreeSet–TreeMap三组。 Collection集合 总结一下Collection单列集合的常用功能有哪些,ArrayList、LinkedList、HashSet、LinkedHashSet、TreeSet集合都可以调用下面的方法: Collection集合的遍历方式: 迭代器遍历集合 当调用iterator()方法获取迭代器时,当前指向第一个元素; hasNext()方法则判断这个位置是否有元素,如果有则返回true,进入循环; 调用next()方法获取元素,并将当月元素指向下一个位置; 等下次循环时,则获取下一个元素,依此类推。 12345Iterator<String> it =...
Java的深浅拷贝
发表于2023-07-14|Java基础
今天在刷算法题的时候忘记了引用数据类型深浅拷贝的问题,正好借此机会来复习一下。 拷贝的分类 引用拷贝 没有创建新的内存空间,只是复制了一个引用变量指向了堆空间中相同的地址。 对象拷贝 创建对象的一个副本,创建了新的对象指向不同的地址空间。而深浅拷贝的区别在于对象里面的属性拷贝方式。 浅拷贝 属性就是引用拷贝,指向同一地址。 深拷贝 属性也是对象拷贝,不是同一地址。 引用拷贝1234Teacher teacher = new Teacher("riemann", 28);Teacher otherTeacher = teacher; // 没有创建新的对象System.out.println(teacher);System.out.println(otherTeacher); 它们的地址值是相同的,teacher和otherTeacher只是引用而已,他们都指向了一个相同的对象Teacher(“riemann”,28)。 对象拷贝1234Teacher teacher = new...
Linux入门
发表于2023-07-08|Linux
Linux的常见命令和Linux中安装jdk、mysql等。 Linux基础命令文件目录操作命令 ls -a -l cd ~:表示用户的home目录 .:表示当前所在目录 ..:表示目前目录位置的上级目录 cat -n:显示行号 more:分页的形式显示文件内容 回车键:向下滚动一行 空格键:向下滚动一屏 b:返回上一屏 q或者Ctrl+C:退出more tail:查看文件末尾的内容 -f:动态读取文件末尾内容并显示,常用于日志文件的内容输出 mkdir:创建目录 -p:可以实现多级目录的同时创建(mkdir 1/2/3) rmdir:删除空目录 拷贝移动命令 cp:用来复制文件或目录(cp [-r] source dest) -r:复制该目录下的所有子目录和文件 mv:为文件或目录改名,或移动到其他位置(mv source...
01-MySQL基础
发表于2023-07-07|Mysql
Mysql是一种关系型数据库,这篇博客作为数据库的基础篇主要讲解操作关系型数据的SQL编程语言。 数据库相关概念数据库 数据模型数据模型是数据库中数据的存储方式,是数据库系统的基础。 SQL语言DDL 数据定义语言 数据库操作 12345show databases;create database 数据库名;use 数据库名;select database();drop database 数据库名; 表操作 123456show tables;create table 表名 (字段 字段类型, 字段 字段类型...);desc 表名;show create table 表名;alter table 表名 add / modify / change / drop / rename to ...;drop table...
MybatisPlus
发表于2023-07-07|Springboot
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。使用原生的Mybatis编写持久层逻辑时,所需要的代码是比较繁琐的,需要定义Mapper接口和Mapper.xml文件,每一个方法都需要编写对应的sql语句,会存在很多大量的重复工作,使用MP之后,对通用的方法做了高度的抽取,避免了很多重复工作,可以非常快速的实现了单表的各种增、删、改、查操作。 博客主要讲解Springboot项目下的MybatisPlus框架的核心功能,详细的可参考MP的中文开发文档。 入门配置 创建Springboot工程(在IDEA中集成功能) 引入 Spring Boot Starter 父工程: 12345<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> ...
瑞吉外卖项目实战day2
发表于2023-07-06|Springboot
适合新手小白入门Java后端开发的Springboot + Mybatis Plus 项目。 后面我逐渐省略了一些功能的记录,主要是因为和前面的业务万变不离其宗,如果要看详细的代码可以到我的github仓库下拉reggie代码。 业务实现(后台系统)新增套餐数据模型 表现层要素 请求类型:POST 请求路径:/setmeal 请求参数:json格式的数据,除了setmeal套餐的基本信息外,还有套餐内的菜品信息setmealDishes也封装成json数组的格式。(还有idType和dishList是什么,当请求参数json数据key大于dto对象的时候,可以正常封装吗?) 12345678910111213141516171819202122232425262728addSetmeal(prams) .then((res) => { if (res.code === 1) { this.$message.success('套餐添加成功!') if (!st) { ...
1234…6
avatar
KiCheng
杂乱无章的记事本
文章
56
标签
17
分类
19
公告
公告图片
This is my Blog
最新文章
Linux下固定USB串口名称
Linux下固定USB串口名称2025-05-15
RPC2025-04-24
Netty高性能架构
Netty高性能架构2025-04-18
NIO编程
NIO编程2025-04-16
ZooKeeper
ZooKeeper2025-03-30
分类
  • Android1
  • Git2
  • Java4
  • Java 并发编程1
  • JavaWeb10
  • Java基础2
  • Java并发5
  • Java虚拟机1
标签
mysql MySQL Android FFmpeg java SpringBoot Java 设计模式 中间件 并发编程 JVM ZooKeeper JNI开发 database IO OpenCV linux
归档
  • 五月 2025 1
  • 四月 2025 3
  • 三月 2025 2
  • 二月 2025 1
  • 一月 2025 5
  • 十一月 2024 1
  • 九月 2024 7
  • 八月 2024 4
网站信息
文章数目 :
56
本站访客数 :
本站总浏览量 :
最后更新时间 :
©2023 - 2025 By KiCheng
框架 Hexo|主题 Butterfly