上一页 1 ··· 4 5 6 7 8 9 10 11 下一页
摘要: 索引情况 -- 查询冗余索引(比如对于 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 阅读(24) 评论(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 查看a56爆大奖在线娱乐步骤时间成本 分析结果如果是等待时间长,对数据库参数进行调优(连接池等) 分析结果如果是 sq 阅读全文
posted @ 2023-05-17 15:38 CyrusHuang 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 表锁:InnoDB 支持行锁,不代表着就不支持表锁 表锁的 S 和 X 锁,MyISAM 的锁(不建议在 InnoDB 中使用) -- 查看当前有表锁的表 show open tables where in_use > 0; -- 给表加 S 锁(所有事务都能读,所有事务都不能写) lock tab 阅读全文
posted @ 2023-05-17 15:33 CyrusHuang 阅读(19) 评论(0) 推荐(0) 编辑
摘要: ACID Atomicity:原子性(UNDO LOG实现),一组操作要么都成功,要么都失败 Consistency:一致性(UNDO LOG实现),从一个合法状态变为另一个合法状态(语义上不是语法上)。比如转账之后余额为负数,虽然也能守恒,但是明显不合法。或者转账时A账户钱少了,B账户钱没多,也是 阅读全文
posted @ 2023-05-17 15:28 CyrusHuang 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 内存和磁盘每次交互都是完整的页,数据页里面存放的是行(不仅仅是数据库的数据行,还有行格式等) 页(16k,计算机与内存的最小单位)的上层单位还有区(一个区存放64个页,64*16k = 1024k,刚好 1M),区上面是段(一个或多个区组成),段上面是表空间(一个或多个段组成) 行格式 show t 阅读全文
posted @ 2023-05-17 14:59 CyrusHuang 阅读(54) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 下一页