- 博客(21)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 Redis详解
缓存击穿定义缓存击穿是指当某一key的缓存过期时,大并发量的请求同时访问此key,瞬间击穿缓存服务器直接访问数据库,让数据库处于负载的情况。这通常发生在热点数据上,即那些被频繁访问的数据。当这些数据在缓存中失效时,大量并发请求会绕过缓存直接访问数据库,导致数据库压力骤增。解决方案加锁:在数据未缓存时,对于相同的请求加锁,只有一个请求去查询数据库,其他请求等待,查询成功后更新缓存。设定热点数据不过期:对于频繁访问的热点数据,可以设置较长的缓存时间,防止过期。
2025-02-25 17:02:43
634
原创 Spring框架详解(二)
一级缓存(singletonObjects):这是Spring容器中最终存放完全初始化并且准备好供使用的Bean对象的缓存。当通过getBean()方法获取Bean对象时,Spring会首先检查这个缓存中是否已经存在该Bean对象,如果存在就直接返回,从而避免重复创建和初始化。二级缓存(earlySingletonObjects):这是Spring容器通过BeanDefinition创建Bean对象的一个缓存,用于存放尚未完全初始化的Bean对象。
2025-02-20 16:14:29
882
原创 Spring框架详解(一)
Bean定义加载与解析:Spring容器启动时,会读取配置文件(如XML文件或注解配置),并将Bean定义解析为BeanDefinition对象。BeanFactoryPostProcessor处理:在Bean实例化之前,Spring容器允许通过BeanFactoryPostProcessor接口对BeanDefinition进行自定义修改。Bean实例化:根据BeanDefinition中的信息,Spring容器通过反射机制创建Bean的实例。
2025-02-19 15:42:19
1835
原创 JVM堆详解
执行finalize()后,对象可能重新变为可达状态(例如,在finalize()方法中重新将自身赋值给某个静态变量),这种情况下,GC会重新对其进行可达性分析。原理:通过一系列称为“GC Roots”的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索过程所走过的路径称为“引用链”(Reference Chain)。Young GC主要在年轻代(Young Generation)触发,年轻代是存放新生成对象的区域,通常较小,并且分为Eden和两个Survivor区域(S0和S1)。
2025-02-18 18:01:17
868
原创 JIT优化技术
因此,JVM内置了解释器(interpreter),在运行时对字节码进行解释,将其翻译成机器码,然后执行。如果一个对象不会逃逸到方法外部,那么JVM就可以将其分配在栈上而不是堆上,从而减少垃圾收集的开销并提高程序的执行效率。方法内联是指将某个方法的代码直接插入到调用该方法的地方,而不是通过方法调用的方式执行。公共子表达式是指在一个程序中多次出现的计算表达式,通过公共子表达式消除优化,可以将重复的计算合并为一次计算,减少不必要的计算开销。JIT编译器在编译热点代码时,会采用多种优化手段来提高程序的执行效率。
2025-02-18 14:11:45
722
原创 Java虚拟机(JVM)深度解析
Java虚拟机(Java Virtual Machine, JVM)是Java程序运行的核心环境,负责将字节码(.class文件)转换为机器码并执行。核心特性平台无关性:一次编译,到处运行(Write Once, Run Anywhere)。内存管理:自动内存分配与垃圾回收。安全沙箱:限制Java程序对底层系统的直接访问。(示意图:JVM核心组件:类加载器、运行时数据区、执行引擎)
2025-02-17 13:37:10
1854
原创 MySQL题目(二)
MySQL Buffer Pool:数据库性能加速的核心引擎Buffer Pool(缓冲池)是 MySQL InnoDB 存储引擎中最重要的内存结构,承担着缓存数据页、减少磁盘 I/O的核心职责。它直接决定了数据库的读写性能,理解其原理是优化 MySQL 的关键。MySQL的字典锁,全称为元数据锁(Metadata Lock,简称MDL),是用于管理数据库对象的并发访问和确保元数据一致性的锁机制。定义与功能定义:字典锁(MDL)是MySQL中用于保护数据库对象元数据不被并发修改的一种锁机制。
2025-02-12 17:26:40
547
原创 MySQL SQL 调优实战指南:从慢查询到高性能
SQL 调优是一个需要不断学习和实践的过程,需要结合具体的业务场景和数据特点,灵活运用各种调优技巧。希望本文介绍的 SQL 调优步骤和实战案例能够帮助您快速提升 SQL 查询性能,打造高性能的数据库应用。
2025-02-07 17:51:07
326
原创 MySQL题目(一)
回表是指在使用非聚簇索引(也称二级索引、辅助索引)查询时,由于查询的列中有部分字段不包含在非聚簇索引的叶子节点中,因此无法直接从索引中获取所需的所有数据。这时,MySQL需要通过非聚簇索引查找到主键值,然后再去聚簇索引中根据主键值获取完整数据行的过程。这个过程会增加额外的磁盘I/O操作,从而降低查询性能。使用覆盖索引:覆盖索引是指索引中包含了查询所需的所有列,这样在进行查询时,MySQL可以直接从索引中获取所需数据,而无需访问表中的数据行,从而避免了回表操作。
2025-02-07 16:14:38
965
原创 MySQL EXPLAIN解释计划
MySQL执行计划是MySQL提供的一种查看SQL与数据库交互行为的工具。可以很直观的帮助开发者发现问题并进行SQL优化。最常用的是EXPLAIN命令。使用EXPLAIN关键字可以模拟优化器的行为,返回MySQL如何使用索引进行搜索和表的连接顺序(JOIN),并且可以让我们知道在MySQL解析查询时,每个动作后的信息。MySQL EXPLAIN解释计划是开发者们优化SQL查询的重要工具。通过了解和使用EXPLAIN命令及其关键元素,我们可以更好地理解查询是如何执行的,并在必要时进行优化以提高查询性能。
2025-02-06 16:31:01
612
原创 MySQL MVCC:多版本并发控制的奥秘
MVCC是一种用于提供数据库并发访问的方法,它允许事务在不需要锁的情况下读取数据。通过在数据库中保存数据的多个版本,MVCC使得读操作可以读取数据的快照,而写操作(更新和删除)则创建数据的新版本,而不是直接覆盖旧版本。这种方式有效避免了读写操作之间的冲突,提高了数据库的并发性能。MVCC是MySQL InnoDB存储引擎实现高并发控制的关键技术之一。通过保存数据的多个版本和利用Undo日志,MVCC使得读操作可以读取数据的快照,而写操作则创建数据的新版本。
2025-02-06 13:43:44
724
原创 MySQL 索引:加速数据检索的利器
索引是MySQL数据库中提升查询性能的重要手段。了解索引的数据结构、分类、优缺点以及使用场景,可以帮助我们更好地设计和优化数据库。同时,掌握一些索引优化策略,如避免全表扫描、合理使用复合索引等,也可以进一步提高数据库的查询效率。
2025-02-06 11:54:52
507
原创 MySQL 锁机制:并发控制的守护者
MySQL提供了丰富的锁机制,通过合理选择和优化锁机制,可以有效提升数据库的并发性能和数据一致性。在实际应用中,需要根据具体的业务场景和需求来选择合适的锁类型和策略。同时,也需要注意监控和优化锁的使用情况,以避免出现性能瓶颈和死锁等问题。
2025-02-06 11:31:59
979
原创 MySQL 事务:保障数据一致性的利器
事务是指作为单个逻辑工作单元执行的一系列操作,这些操作要么全部成功,要么全部失败。一个经典的例子是银行转账操作:从账户 A 向账户 B 转账 100 元,这个操作包含两个步骤:从账户 A 扣除 100 元。向账户 B 增加 100 元。这两个步骤必须作为一个整体执行,如果其中一个步骤失败,整个操作都应该回滚,否则会导致数据不一致。事务是保障数据库数据一致性的重要机制,MySQL 提供了完善的事务支持。理解事务的概念、特性和使用方法,对于开发可靠的数据库应用至关重要。
2025-02-06 10:51:11
399
原创 MySQL存储引擎的区别与使用
MySQL作为广泛使用的关系型数据库管理系统,提供了多种存储引擎以满足不同应用场景的需求。每种存储引擎都有其独特的特点和适用场景,选择合适的存储引擎对于数据库的性能和可靠性至关重要。本文将详细介绍MySQL中几种主要的存储引擎及其区别与使用。
2025-02-06 10:24:23
961
原创 MySQL优化之索引
MySQL优化之索引1.索引优缺点优点:1.提高数据库的检索效率,降低IO成本2.通过索引进行排序,降低数据排序的成本,降低CPU消耗缺点:1.占用空间2.降低更新数据的速度2.InnoDB索引分类1.聚集索引数据与索引放在一起,索引的叶子节点保存行数据,只存在1个2.二级索引,索引只保存主键,需要回表查询(通过索引获取主键,通过主键获取行数据),可以存在多个3.索引失效情况1.索引列上进行运算,2.字符串没有加上双引号3.使用模糊查询(ps:尾部加%不会失效)4.多个条件用
2022-05-26 17:14:50
186
原创 Springboot邮件发送
Springboot邮件发送1.参数配置pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency>application.propertiesSMTP授权码获取方式(qq邮箱)设置账户POP3/IMAP/SM
2022-05-10 09:27:30
107
原创 Mysql优化
mysql优化(1)查询优化1.内查询2.联合查询性能分析1.profile2.explain3.查看执行频次4.慢查询日志查询优化1.内查询隐式内连接:SELECT 字段列表 FROM 表1, 表2 WHERE 条件 …;显式内连接:SELECT 字段列表 FROM 表1 [ INNER ] JOIN 表2 ON 连接条件 …;显示内连接查询性能优于隐式内连接查询2.联合查询SELECT 字段列表 FROM 表A …UNION [ALL]SELECT 字段列表 FROM 表B …联
2022-04-29 15:32:38
1154
毕设-基于springboot+uniapp(vue)的小说阅读app
2022-05-18
PCA降维python的代码以及结果.doc
2020-05-11
uniapp中页面显示的和控制台输出的不一样,页面显示没有换行符号怎么办?
2021-01-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人