自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(142)
  • 收藏
  • 关注

原创 『MySQL 实战 45 讲』24 - MySQL是怎么保证主备一致的?

4. 执行一次删除语句,查看 delete 语句在 binlog 是怎么记录的。

2024-12-07 13:48:33 1109

原创 『MySQL 实战 45 讲』22 - MySQL 有哪些“饮鸩止渴”提高性能的方法?

由慢查询导致性能问题的三种可能情况,实际上出现最多的是前两种可以通过下面过程,预先发现问题上线前,把慢查询日志(slow log)打开,并且把设置成 0,确保每个语句都会被记录入慢查询日志在测试表里插入模拟线上的数据,做一遍回归测试观察慢查询日志里每类语句的输出,特别留意字段是否与预期一致新增的 SQL 语句不多,手动跑一下就可以。而如果是新项目的话,或者是修改了原有项目的表结构设计,全量回归测试都是必要的。这时候,你需要工具帮你检查所有的 SQL 语句的返回结果。

2024-06-29 13:23:10 1319 1

原创 『MySQL 实战 45 讲』21 - 为什么我只改一行的语句,锁这么多?

session A 的 delete 语句加了 limit 2,但是 c=10 的记录其实只有两条,因此加不加 limit 2,删除效果都一样,但是加锁的效果就不一样。

2024-05-04 19:39:57 858

原创 『MySQL 实战 45 讲』20 - 幻读是什么,幻读有什么问题?

3. 当执行 select * from t where d=5 for update 的时候,6 个记录加上了行锁,还同时加了 7 个间隙锁,这样就确保无法再插入新的记录。

2024-05-04 13:51:18 1241

原创 『MySQL 实战 45 讲』19 - 为什么我只查一行的语句,也执行这么慢?

4. 可以看出 905 号线程是问题根源,可以执行。2. 扫描 1 行但是执行还是很慢的情况。

2024-05-03 00:16:53 346

原创 『MySQL 实战 45 讲』18 - 为什么这些SQL语句逻辑相同,性能却差异巨大

4.5. 优化器可以选择遍历主键索引,也可以选择遍历索引 t_modified,优化器对比索引大小后发现,索引 t_modified 更小,遍历这个索引比遍历主键索引来得更快。因此。但是这里是全索引扫描6. 即使对于对于不改变有序性的函数,优化器也不会考虑使用索引(),例如。

2024-05-02 20:05:14 51

原创 『SpringBoot 源码分析』run() 方法执行流程:(4)刷新应用上下文-处理 @Import 注解

【代码】『SpringBoot 源码分析』run() 方法执行流程:(4)刷新应用上下文-处理 @Import 注解。

2023-09-09 12:27:41 373 1

原创 『SpringBoot 源码分析』run() 方法执行流程:(3)刷新应用上下文-处理 @ComponentScan 注解

【代码】『SpringBoot 源码分析』run() 方法执行流程:(3)刷新应用上下文-处理 @ComponentScan 注解。

2023-09-09 00:45:25 531

原创 『SpringBoot 源码分析』run() 方法执行流程:(2)刷新应用上下文-准备阶段

【代码】『SpringBoot 源码分析』run() 方法执行流程:(2)刷新应用上下文-准备阶段。

2023-09-02 00:00:25 606

原创 『SpringBoot 源码分析』run() 方法执行流程:(1)初始化 SpringApplication 、上下文环境、应用上下文

6. 然后根据调用栈,找到 main 入口,获取到主程序类,设置到。5. 设置完初始化器之后,开始设置监听器。的实现类,逐一初始化,并按照。找到所有 key 为。

2023-08-19 20:44:11 734 1

原创 『SpringBoot 源码分析』自动配置

【代码】『SpringBoot 源码分析』自动配置。

2023-08-08 01:32:19 324

原创 『SpringBoot 源码分析』依赖管理

【代码】『SpringBoot 源码分析』依赖管理。

2023-08-05 11:30:50 151

原创 『Dubbo SPI源码分析』@Adaptive 机制分析

【代码】『Dubbo SPI源码分析』@Adaptive 机制分析。

2023-07-23 01:04:54 115

原创 『Dubbo SPI源码分析』依赖注入机制分析

【代码】『Dubbo SPI源码分析』依赖注入机制分析。

2023-07-23 00:54:11 117

原创 『Dubbo SPI源码分析』Wrapper 机制分析

【代码】『Dubbo SPI源码分析』Wrapper 机制分析。

2023-07-22 23:56:18 99

原创 『Dubbo SPI源码分析』SPI 机制分析

【代码】『Dubbo SPI源码分析』SPI 机制分析。

2023-07-22 21:55:17 107

原创 『手撕 Mybatis 源码』11 - 二级缓存

/</</

2023-07-03 00:52:48 140

原创 『手撕 Mybatis 源码』10 - 一级缓存

【代码】『手撕 Mybatis 源码』10 - 一级缓存。

2023-07-02 00:23:54 217

原创 『手撕 Mybatis 源码』09 - MyBatis 插件

用于定义插件的类指定要拦截哪个对象里面哪个方法// 详细的配置要拦截那些对象里面的那些方法 }由于一个拦截器可以同时拦截多个对象的多个方法,,所以就使用了Signture数组,该注解定义了拦截的完整信息// 拦截的类 Class <?> type();// 举例:type = StatementHandler.class // 拦截的方法 String method();// 举例:method = "prepare" // 拦截方法的参数 Class <?

2023-06-30 00:50:20 216

原创 『手撕 Mybatis 源码』08 - 动态代理 invoke 方法

【代码】『手撕 Mybatis 源码』08 - 动态代理 invoke 方法。

2023-06-22 10:44:30 409

原创 『手撕 Mybatis 源码』07 - Proxy 对象创建

【代码】『手撕 Mybatis 源码』07 - Proxy 对象创建。

2023-06-22 10:19:52 566 1

原创 『手撕 Mybatis 源码』06 - Mapper 代理方式初始化

【代码】『手撕 Mybatis 源码』06 - Mapper 代理方式初始化。

2023-06-11 00:05:18 395 1

原创 『手撕 Mybatis 源码』05 - SqlSession 执行主流程

SqlSession 执行主流程获取 BoundSql经过加载完所有配置之后,继续梳理执行 sql 的过程public class MybatisTest { @Test public void test1() throws IOException { ... // 4. 委派给 Executor 来执行,Executor 执行时又会调用很多其他组件(参数设置、解析 sql 的获取,sql 的执行、结果集的封装) User user = sqlSession.selectOne("u

2023-06-10 16:14:03 683

原创 『MySQL 实战 45 讲』17 - 如何正确地显示随机消息?(随机抽取 3 个词)

取下一个行 (R’,rowid’),跟当前堆里面最大的 R 比较,如果 R’小于 R,把这个 (R,rowid) 从堆中去掉,换成 (R’,rowid’)5. 小结:order by rand() 使用了内存临时表,内存临时表排序的时候使用了 rowid 排序方法。对于这 10000 个准备排序的 (R,rowid),先取前三行,构造成一个堆。重复第 2 步,直到第 10000 个 (R’,rowid’) 完成比较。使用了优先队列排序算法,其实只要取 R 的最小的 3 个 rowid。

2023-05-25 00:12:14 401

原创 『手撕 Mybatis 源码』04 - 创建 sqlSession

【代码】『手撕 Mybatis 源码』04 - 创建 sqlSession。

2023-05-22 10:08:06 376

原创 『手撕 Mybatis 源码』03 - 解析映射配置文件

/</</</</

2023-05-21 00:09:23 362

原创 『MySQL 实战 45 讲』16 - “order by” 是怎么工作的

【代码】『MySQL 实战 45 讲』“order by” 是怎么工作的。

2023-05-18 01:16:02 486

原创 『手撕 Mybatis 源码』02 - 加载配置文件

对于返回至少 4 个参数以上的对象,最好使用。

2023-05-16 10:11:47 306

原创 『MySQL 实战 45 讲』15 - 两阶段提交、索引相关问题

【代码】『MySQL 实战 45 讲』15 - 两阶段提交、索引相关问题。

2023-05-15 01:19:44 306

原创 『手撕 Mybatis 源码』01 - 基本原理与搭建

【代码】『手撕 Mybatis 源码』01 - 基本原理与搭建。

2023-05-14 10:14:55 313

原创 『MySQL 实战 45 讲』14 - count(*) 慢的根本原因

count(*) 慢的根本原因

2023-05-14 01:11:53 420

原创 『MyBatis技术内幕』源码调试前提

『MyBatis技术内幕』源码调试前提

2023-03-05 15:03:30 538

原创 『Leetcode 5266』推箱子

『题目』: 给「推箱子」是一款风靡全球的益智小游戏,玩家需要将箱子推到仓库中的目标位置。游戏地图用大小为 n * m 的网格 grid 表示,其中每个元素可以是墙、地板或者是箱子。现在你将作为玩家参与游戏,按规则将箱子 'B' 移动到目标位置 'T' :玩家用字符 'S' 表示,只要他在地板上,就可以在网格中向上、下、左、右四个方向移动。地板用字符 '.' 表示,意味着可以自由行走。...

2019-11-17 15:47:09 702 1

原创 『Leetcode 5250』检查「好数组」

『题目』: 给你一个正整数数组 nums,你需要从中任选一些子集,然后将子集中每一个数乘以一个 任意整数,并求出他们的和。假如该和结果为 1,那么原数组就是一个「好数组」,则返回 True;否则请返回 False。『限制条件』:1 <= nums.length <= 10^51 <= nums[i] <= 10^9『输入输出』输入:nums = [12,5,7...

2019-11-03 16:30:52 443

原创 『Leetcode 5241』铺瓷砖

『题目』: 你是一位施工队的工长,根据设计师的要求准备为一套设计风格独特的房子进行室内装修。房子的客厅大小为 n x m,为保持极简的风格,需要使用尽可能少的 正方形 瓷砖来铺盖地面。假设正方形瓷砖的规格不限,边长都是整数。请你帮设计师计算一下,最少需要用到多少块方形瓷砖?『限制条件』:1 <= n <= 131 <= m <= 13『输入输出』输入:n ...

2019-10-27 16:43:36 1377

原创 『Leetcode 5239』循环码排列

『题目』: 给你两个整数 n 和 start。你的任务是返回任意 (0,1,2,,...,2^n-1) 的排列 p,并且满足:p[0] = startp[i] 和 p[i+1] 的二进制表示形式只有一位不同p[0] 和 p[2^n -1] 的二进制表示形式也只有一位不同『限制条件』:1 <= n <= 160 <= start < 2^n『输入输出』输...

2019-10-27 11:59:32 505

原创 『Leetcode 5225』规划兼职工作

『题目』: 你打算利用空闲时间来做兼职工作赚些零花钱。这里有 n 份兼职工作,每份工作预计从 startTime[i] 开始到 endTime[i] 结束,报酬为 profit[i]。给你一份兼职工作表,包含开始时间 startTime,结束时间 endTime 和预计报酬 profit 三个数组,请你计算并返回可以获得的最大报酬。注意,时间上出现重叠的 2 份工作不能同时进行。如果你选...

2019-10-20 20:46:17 592

原创 『Leetcode 5232』替换子串得到平衡字符串

『题目』: 有一个只含有 'Q','W', 'E', 'R' 四种字符,且长度为 n 的字符串。假如在该字符串中,这四个字符都恰好出现 n/4 次,那么它就是一个「平衡字符串」。给你一个这样的字符串s,请通过「替换子串」的方式,使原字符串 s 变成一个「平衡字符串」。你可以用和「待替换子串」长度相同的 任何 其他字符串来完成替换。请返回待替换子串的最小可能长度。如果原字符串自身就是一个...

2019-10-20 20:32:46 579

原创 『Leetcode 5225』最大相等频率

『题目』: 给出一个正整数数组nums,请你帮忙从该数组中找出能满足下面要求的 最长 前缀,并返回其长度:从前缀中 删除一个 元素后,使得所剩下的每个数字的出现次数相同。如果删除这个元素后没有剩余元素存在,仍可认为每个数字都具有相同的出现次数(也就是 0 次)。『限制条件』:2 <= nums.length <= 10^51 <= nums[i] <= 10...

2019-10-13 15:38:14 563

原创 『POJ 1860』Currency Exchange

『题目』: 我们的城市有几个货币兑换点。让我们假设每一个点都只能兑换专门的两种货币。可以有几个点,专门从事相同货币兑换。每个点都有自己的汇率,外汇汇率的A到B是B的数量你1A。同时各交换点有一些佣金,你要为你的交换操作的总和。在来源货币中总是收取佣金。例如,如果你想换100美元到俄罗斯卢布兑换点,那里的汇率是29.75,而佣金是0.39,你会得到(100 - 0.39)×29.75=2963....

2019-09-30 21:59:12 134

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除