上一页 1 ··· 5 6 7 8 9 10 11 12 下一页
摘要: ## 线程状态 `java.lang.Thread.State` 里明确了线程的各个状态以及怎么进入和退出各个状态 ```java public enum State { // 初始化状态,线程创建之后的状态,new Thread() 之后进入 NEW, // 就绪状态,线程正在运行或等待 CPU 阅读全文
posted @ 2023-05-24 15:57 CyrusHuang 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 转义字符 -- '_' 在mysql中是表示任一字符,下面查的是名字等于 *Aaaa 的 SELECT * FROM USER WHERE NAME = '_Aaaa'; -- 如果就要查名字是 _Aaaa 的人需要使用转移字符,把_当成普通字符 SELECT * FROM USER WHERE N 阅读全文
posted @ 2023-05-18 10:20 CyrusHuang 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 配置参数 long_query_time 的值(默认是10秒),超过这个值的就会被是为慢查询,后面可以根据 EXPLAIN 来跟踪 默认是关闭的。如果打开超过阈值的会被记录,所以建议在调优的时候才打开这个参数 -- 查看慢查询是否开启 show variables like 'slow_query_ 阅读全文
posted @ 2023-05-17 16:41 CyrusHuang 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 索引情况 -- 查询冗余索引(比如对于 name 字段创建了一个单列索引,有创建了一个 name 和 code 的联合索引) select * from sys.schema_redundant_indexes; -- 查询未使用过的索引 select * from sys.schema_unuse 阅读全文
posted @ 2023-05-17 16:24 CyrusHuang 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 连接查询 原理涉及到 index nested-loop join , block nested-loop join ,join buffer size ,hash join(mysql8)等,感觉没必要记那么多 需要知道会一次性把驱动表的数据加载到内存中(如果 join buffer size 放 阅读全文
posted @ 2023-05-17 16:19 CyrusHuang 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 一条 sql 的执行,会生成一个执行计划,这个执行计划是 优化器 认为最优的,然后执行器再执行这个执行计划 执行计划只是优化器自认为最优,不见得就是最优的 执行计划里面包括:可用的索引,真正用到的索引,表的读取顺序,每张表有多少行被优化等等 EXPLAIN 和 DESCRIBE 效果一样 EXPLA 阅读全文
posted @ 2023-05-17 16:14 CyrusHuang 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 范围条件放最后面,不管单列还是多列索引,把能过滤最多的索引放前面 用不用索引最终都是优化器决定的,EXPLAIN json 格式里的执行成本决定 最左匹配,如果是联合索引,查找索引树的时候,只能根据第一个索引才能找到第二个第三个,如果顺序没对就不会走索引 -- 联合索引(name, code, ad 阅读全文
posted @ 2023-05-17 16:05 CyrusHuang 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 回表 只查询一次索引得不到想要的数据,典型的场景就是非聚簇索引查询:先拿到主键ID,再根据id查询一次得到数据(再次查询这就是回表) 索引覆盖:根据普通索引查询不回表就能得到数据 -- 联合索引(age, addr) select age, addr from t_user where age > 阅读全文
posted @ 2023-05-17 15:47 CyrusHuang 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 列是唯一的,或有唯一约束(alibaba 规范指出只要是唯一的必须加索引,哪怕是多列组合是唯一的也要添加一个多列索引) 频繁作为 where 条件的字段 经常 group by 或 order by 的字段(对 select 结果集再次索引才能再次得到一个最终结果集) distinct 字段 upd 阅读全文
posted @ 2023-05-17 15:41 CyrusHuang 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 思路 是否存在周期波动(如果是云数据库,控制台能看到),如果是,分析高峰,适当加缓存 加了缓存仍没有解决问题,开启慢查询,并使用 EXPLAIN 分析慢 sql 索引情况,也可通过 profile 查看每个步骤时间成本 分析结果如果是等待时间长,对数据库参数进行调优(连接池等) 分析结果如果是 sq 阅读全文
posted @ 2023-05-17 15:38 CyrusHuang 阅读(28) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 下一页