202509|技术日志
0901
SQL索引失效的情况
面试的时候经常会考察SQL的索引,而SQL索引失效的情况就是在业务场景中使用SQL索引时经常会遇到的问题
常见的索引失效,也就是我们通常说的查询未命中索引,这样的情况有:
- 复合索引是遵循最左匹配原则,如果索引列顺序错了,会导致索引无法命中
- MySQL 分析本次查询最终查询出来的数据有900条,整张表有1000条数据,查询索引的成本比全表扫描来得高,因此会直接扫描全表不会命中索引
分析查询是否命中索引
可以使用 MySQL 自带的 EXPLAIN 关键字
工厂方法模式
已整理成单独文章笔记
0902
CPU占用过高排查
top显示进程CPU利用率,找到最高的那个进程,定位PID
之后通过 jstack
命令导出这个进程的堆栈信息以便定位是哪一段代码
1 |
|
同时我们查看这个进程中哪些线程占用过高,获得他们的线程ID
1 |
|
有了线程ID,就可以去 stack.log 中查找,但是堆栈日志文件中是十六进制,因此需要先转换一下
1 |
|
1 |
|
这样就可以定位具体是哪里出了问题
202509|技术日志
http://example.com/2025/09/01/202509-技术日志/