上一页 1 2 3 4 5 6 7 8 ··· 13 下一页
摘要: 前面了解了 WAL 机制知道,只要 redo log 和 binlog 持久化到磁盘,就能确保 Mysql 重启后,数据可以恢复。 binlog 写入机制 事务执行过程中,日志先写入 binlog cache,事务提交时,再把 binlog cache 写入 binlog 文件中,并清空 cache 阅读全文
posted @ 2022-10-23 17:17 菜乌 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 在实际开发过程中,业务高峰期常遇到 Mysql 响应变慢。为了不影响业务,要在短时间内临时提升性能。 短链接 原因分析 短链接是连接数据库后,执行很少的 SQL 后就断开,下次需要的时候再重新连接。这种情况很容易出现连接突然暴涨的情况 Mysql 建立连接时除了网络连接三次握手外,还要权限判断和获取 阅读全文
posted @ 2022-10-20 18:09 菜乌 阅读(84) 评论(0) 推荐(0) 编辑
摘要: sql 性能优化,是代码编写过程中必定要考虑的内容,弄懂性能背后的逻辑,起到事半功倍的效果。 今天学习几种常见的简单优化场景。 条件字段中调用函数 以公司的打卡信息表为例,表中存放了公司近三年的打卡记录,add_time 字段有索引。 查询自己每年 7 月份的打卡情况, select count(* 阅读全文
posted @ 2022-10-16 17:19 菜乌 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 误删数据是数据库操作过程中不可避免会遇到的问题。 误删分为几种,误删行、误删库/表、误删整个实例。 遇到问题就要分析原因,并对症下药解决问题。 误删行 使用 delete 语句误删数据行。 此时可以用 Flashback 工具通过闪回恢复数据。 原理是修改 binlog 内容,拿回原库重放,前提是确 阅读全文
posted @ 2022-10-06 19:24 菜乌 阅读(227) 评论(0) 推荐(0) 编辑
摘要: Mysql 中有很多自增 ID 定义了自增 ID 的长度后,就有了最大值,就有可能被用完 表定义自增主键 ID 通过上一篇 Mysql 系列 | 自增 ID 很好理解,主键达到最大值,再申请 ID 时得到的还是原来的自增值,然后主键冲突,数据插入失败。 InnoDB 系统自增 row_id 如果表中 阅读全文
posted @ 2022-09-02 11:06 菜乌 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 自增主键在每张表中都会存在,即使没有定义也会自动生成。 自增 ID 除了我们常说的表 ID 外,还有 row_id、thread_id、table_id 等。 下面只考虑每张表的 ID。 存在哪里 MyISAM 引擎,存在数据文件中 InnoDB 引擎, Mysql5.7 前存在内存中,没有持久化。 阅读全文
posted @ 2022-09-01 16:46 菜乌 阅读(2682) 评论(0) 推荐(0) 编辑
摘要: 上一篇中说了 join 语句的执行过程,了解了深层逻辑,则优化方案呼之欲出。 Multi-Range Read(MRR) 优化 select * from t1 where a>=1 and a<=100; 回表时,根据 ID 去主键索引 B+ 树上查到一行数据。 当回表时 ID 是随机的,就会出现 阅读全文
posted @ 2022-08-26 14:26 菜乌 阅读(153) 评论(0) 推荐(0) 编辑
摘要: join 也是平常开发中经常用到的,本篇了解一下 join 的执行过程。 t1、t2 两张表中有 a、b 字段,a 为索引。 ti 有 100 条数据,t2 有 1000 条数据。 Index Nested-Loop Join(索引嵌套查询) select * from t1 straight_jo 阅读全文
posted @ 2022-08-24 11:34 菜乌 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 存储过程是实现特定功能的语句集合,编译后存在数据库中。 通过存储过程的名字,并给定参数来调用。 创建 create procedure 过程名([IN|OUT|INOUT 参数名 数据类型]) begin ; end; 通常在创建之前先进行删除操作,drop procedure if exists 阅读全文
posted @ 2022-08-17 18:28 菜乌 阅读(2791) 评论(0) 推荐(0) 编辑
摘要: 上一篇 Mysql 系列 | order by 中介绍了全字段排序、rowid 排序以及借助索引优化排序。 在更复杂的 SQL 中,order by 还会有其他排序方式。 场景 在英语学习 APP 首页,每次打开会随机显示三个英语单词。也就需要每次从表中随机查出三条数据。 表数据越多,随机查询会变得 阅读全文
posted @ 2022-08-15 14:21 菜乌 阅读(1644) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 13 下一页