- 博客(22)
- 收藏
- 关注
原创 【mysql事务】
事务是mysql执行的最小单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体向系统提交、要么都执行、要么都不执行事务时一组不可再分割的操作集合(工作逻辑单元)
2025-10-08 19:12:50
1050
原创 【mysql】内部技术架构
读取数据:当需要读取数据时,InnoDB首先检查数据页是否在Buffer Pool中,如果在Buffer Pool中,则直接从Buffer Pool中读取,返回数据,如果不在Buffer Pool中,则从磁盘读取该页放入Buffer Pool。不支持事务,外键,表级锁,二级索引(数据和索引分开存放,数据存储在.MYD文件中,索引存储在.MYI文件中),读取速度块,二级索引叶子节点记录数据物理地址。在 8.0 之前,如果查询语句完全相同(字节级相同),且表数据未发生变更,则直接返回缓存的结果。
2025-09-23 23:34:59
1153
8
原创 【mysql索引常见面试题】
自适应哈希索引InnoDB引擎上的一个特殊功能,如果某些索引被频繁的用等值查询(=,in),会在内存中基于b+树索引创建一个hash索引,这些等值查询效率就非常高了,时间复杂度为从o(logn)到o(1);这是服务器内部的一个完全自动的行为,用户无权控制.没有重启时11,自增id依赖于内存中一个计数器重启之后时9,计数器会被清空,mysql会重新初始化这个计数器,查询出当前表最大id,并加一,赋值为9第一次 取回id,第二次(回表)根据id拿到完整数据。
2025-09-17 23:59:50
785
原创 【Redis五种数据类型】
redis五种数据类型是:string(字符串),list(列表),hash(哈希表),set(无序且不重复列表),zset(有序且不重复集合)
2025-09-09 20:58:36
734
原创 【Redis】--持久化机制
由于redis的数据主要存储在内存中,内存数据是容易丢失的,一旦服务器进程退出或机器重启,内存数据就会丢失。为了兼顾内存高性能和数据的持久安全性,redis引入了持久化机制,持久化机制会定期或在特定情况下将内存的数据以某种形式保存在磁盘中,这样,即使服务器重启,也可以从硬盘中恢复数据,保证数据持久性。redis提供了两种持久化方式RDB和AOF。
2025-09-06 23:41:18
2756
3
原创 【java并发编程】--cas和synchronized
Java并发编程中,CAS和synchronized是保证原子性的两种重要机制。CAS(比较并交换)是一种乐观锁实现,通过Unsafe类提供的原子操作实现无锁并发,但存在ABA问题和自旋消耗问题。synchronized是悲观锁,基于对象实现,通过方法或代码块加锁确保线程安全。两者底层都依赖CAS操作,但synchronized提供了更全面的锁升级机制(偏向锁、轻量级锁、重量级锁),能更好处理竞争场景。开发中可根据场景选择:低竞争用CAS提高性能,高竞争用synchronized保证稳定性。
2025-08-26 19:46:44
890
原创 【SpringBoot3】全局异常处理
/控制器增强 @ControllerAdvice public class GlobalExceptionHandler {errors.put("tips","被除数不能为0");}*/ }//控制器增强 @ControllerAdvice public class GlobalExceptionHandler {errors.put("tips","被除数不能为0");}*/ }
2024-07-19 23:53:29
2088
2
原创 【springboot】中使用--WebMvcConfigurer
import com/*** 将请求参数字符串转为 DeviceInfo");} }/*** 将请求参数字符串转为 DeviceInfo");} }/*** 将请求参数字符串转为 DeviceInfo");import org/*** 将请求参数字符串转为 DeviceInfo");} }/**
2024-07-19 21:48:59
1550
原创 【Spring MVC】验证参数
服务器端程序,Controller 在方法接受了参数,这些参数是由用户提供 > 的,使用之前必须校验参数是我们需要的吗,值是否在允许的范围内,是 否符合业务的要求。比如年龄不能是负数,姓名不能是空字符串,email 必须有@符号,phone 国内的 11 位才可以。
2024-07-04 22:34:46
1649
原创 【Spring】AOP工作流程
AOP(Aspect Oriented Programming)面向切面编程:一种编程范式,指导开发者如何组织程序结构。AOP作用:在不惊动原始设计的基础上为其进行功能增强。
2024-05-30 23:41:47
2110
原创 【Spring】xml方式声明bean详解
1、IOC(Inversion of Control)控制反转:(1)、使用对象时,由主动new产生对象转换为由外部提供对象,此过程中。
2024-05-29 22:32:15
1118
原创 【MyBatis】的缓存
缓存(cache):一种存储技术,用于临时保存数据的副本缓存的作用:通过减少IO的方式,来提高程序的执行效率。mybatis的缓存:将select语句的查询结果放到缓存(内存)当中,下一次还是这条select语句的话,直接从缓存中取,不再查数据库。一方面是减少了IO。另一方面不再执行繁琐的查找算法。效率大大提升。
2024-05-27 23:53:10
938
原创 【MyBatis】动态SQL第一篇
测试结果:只有在where条件后加上 1 = 1 并且在第一个if标签里最前面加上and才能通过所有测试测试结果:测试通过自动去掉if标签里前面多余的and,后面多余的and是不会被去除的,编写xml文件时需要注意将and 尽可能写前面测试结果:测试通过测试结果:测试通过主要使用在update语句当中,用来生成set关键字,同时去掉最后多余的“,”只更新提交的不为空的字段,如果提交的数据是空或者"",那么这个字段我们将不更新。
2024-05-25 17:16:17
618
原创 【MyBatis】参数处理
其中sql语句中的javaType,jdbcType,以及select标签中的parameterType属性,都是用来帮助mybatis进行类型确定的。不过这些配置多数是可以省略的。因为mybatis它有强大的自动类型推断机制。1.提前准备数据库表,设置id为主键自增。参考(4多参数)的原理@Param("运行正常,数据库中成功添加一条数据。测试通过,不一个个测试了。MyBatis部分源码。2.student类。通过测试,一切正常。
2024-05-24 00:01:53
868
原创 【ThreadLocal】深度解析
ThreadLocal并不是一个Thread,而是Thread的局部变量。当使用ThreadLocal维护变量时, ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自 己的副本,而不会影响其它线程所对应的副本。ThreadLocal为每个线程提供单独一份存储空间, 具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问。
2024-05-22 23:33:43
388
原创 [Vue]template配置项详解
template后面指定的是模板语句,但是模板语句中只能有一个根节点。只要data中的数据发生变化,模板语句一定会重新编译。(只要data变,template就会重新编译,重新渲染)如果使用template配置项的话,指定挂载位置的元素会被替换。
2024-05-15 23:25:41
1019
原创 Vue数据对象-模板语句的数据来源
Vue框架自己是能够看懂的。这种语法在Vue框架中被称为:模板语法中的插值语法。(有的人把他叫做胡子语法。3. data配置项的专业叫法:Vue 实例的数据对象.(data实际上是给整个Vue实例提供数据来源的。4. 如果data是对象的话,对象必须是纯粹的对象 (含有零个或多个的 key/value 对){{}} 这是Vue框架自己搞的一套语法,别的框架看不懂的,浏览器也是不能够识别的。2. data选项的类型是什么?Object | Function (对象或者函数){{data的key}}
2024-05-14 23:02:50
345
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅