重学《MySQL》
打卡记录重学 MySQL 的过程
Snow Hide(雪诺海德)
公主号【纽雪澳诺加海美德】
多年互联网系统架构经验:参与过新西兰某电信供应商及某大型跨境电商系统的开发;主导过新西兰最大电子产品供应商及某跨国移动设备销售商系统的架构设计、技术选型、编码实现、生产部署。
已获国际认证:Linux Profesisonal(LPIC-3)* 2、Linux Engineer(LPIC-2)、Linux Administrator(LPIC-1)、Java(OCJP/OCJA)、MySQL(OCMDP)、PHP7(ZCE)、AWS
展开
-
03.20 Day 61 - 重温 Day 55-59
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 61 天,也是我第 123 次进行这种操作。今天我温习了该专栏里叫《都说InnoDB好,那还要不要使用Memory引擎?》、《要不要使用分区表?》、《自增主键为什么不是连续的?》、《自增id用完怎么办?》、《答疑文章(三):说一说这些好问题》、《“order by”是怎么工作的?》的文章。关键词总结:...原创 2020-03-20 06:52:20 · 127 阅读 · 0 评论 -
03.19 Day 60 - 重温 Day 50-54
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 60 天,也是我第 122 次进行这种操作。今天我温习了该专栏里叫《到底可不可以使用join?》、《join语句怎么优化?》、《什么时候会使用内部临时表?》、《insert语句的锁为什么这么多?》、《grant之后要跟着flush privileges吗?》、《为什么临时表可以重名?》的文章。关键词总...原创 2020-03-19 14:12:10 · 191 阅读 · 0 评论 -
03.18 Day 59 - order by 的算法流程
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 59 天,也是我第 121 次进行这种操作。今天我温习了该专栏里一篇叫《“order by”是怎么工作的?》的文章。关键词总结:全字段排序(语句的执行流程、MySQL 需要 12 个临时文件来做排序的原因)、row_id(指定排序的行数据长度后所采用的另一种算法、由于行数据长度过短导致排序结果少了 c...原创 2020-03-18 05:23:43 · 158 阅读 · 0 评论 -
03.17 Day 58 - 几个好问题
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 58 天,也是我第 120 次进行这种操作。今天我温习了该专栏里一篇叫《答疑文章(三):说一说这些好问题》的文章。关键词总结:join 的写法(join 执行顺序的两个问题、BNL 算法时语句的执行流程)、Simple Nested Loop Join 的性能问题(BNL 算法的执行逻辑、MySQL ...原创 2020-03-17 05:14:32 · 155 阅读 · 0 评论 -
03.16 Day 57 - 自增主键
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 119 天,也是我第 57 次进行这种操作。今天我温习了该专栏里叫《自增主键为什么不是连续的?》、《自增id用完怎么办?》的文章。关键词总结:自增值保存在哪儿?(不同的引擎对于自增值的保存策略不同)、自增值修改机制(当字段 id 被定义为 AUTO_INCREMENT 时插入一行数据时自增值的行为、自...原创 2020-03-16 09:48:55 · 220 阅读 · 0 评论 -
03.15 Day 56 - 分区表
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 56 天,也是我第 118 次进行这种操作。今天我温习了该专栏里一篇叫《要不要使用分区表?》的文章。关键词总结:分区表是什么?(分区表的组织形式)、分区表的引擎层行为(分区表和手工分表)、分区策略(MyIASM 分区策略、InnoDB 本地分区策略、各版本间的变动)、分区表的 server 层行为(分...原创 2020-03-15 06:16:17 · 179 阅读 · 0 评论 -
03.14 Day 55 - 内存表的特性与适用场景
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 55 天,也是我第 117 次进行这种操作。今天我温习了该专栏里一篇叫《都说InnoDB好,那还要不要使用Memory引擎?》的文章。关键词总结:内存表的数据组织结构(InnoDB 和 Memory 引擎的数据组织方式、两个引擎的不同之处)、hash 索引和 B-Tree 索引(不建议在生产环境使用内...原创 2020-03-14 04:31:00 · 186 阅读 · 0 评论 -
03.13 Day 54 - 临时表
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 54 天,也是我第 116 次进行这种操作。今天我温习了该专栏里一篇叫《为什么临时表可以重名?》的文章。关键词总结:内存表和临时表的区别、临时表的特性(临时表在使用上的几个特点、临时表适合 join 优化场景的原因)、临时表的应用(两种比较常用的思路)、为什么临时表可以重用?(表中数据的存放方式在不同...原创 2020-03-13 04:52:42 · 156 阅读 · 0 评论 -
03.12 Day 53 - grant 和 flush privileges 语句
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 53 天,也是我第 115 次进行这种操作。今天我温习了该专栏里一篇叫《grant之后要跟着flush privileges吗?》的文章。关键词总结:创建用户命令的两个动作、全局权限(grant 命令的两个动作、grant 命令的分析结果、回收 grant 语句赋予的权限、revoke 命令的两个动作...原创 2020-03-12 06:01:06 · 235 阅读 · 0 评论 -
03.11 Day 52 - insert 语句
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 52 天,也是我第 114 次进行这种操作。今天我温习了该专栏里一篇叫《insert语句的锁为什么这么多?》的文章。关键词总结:insert … select 语句(可重复读隔离级别下 binlog_format 为 statement 时执行插入操作时需要对表的所有行和间隙加锁)、insert 循环...原创 2020-03-11 03:23:15 · 186 阅读 · 0 评论 -
03.10 Day 51 - group by 算法
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 51 天,也是我第 113 次进行这种操作。今天我温习了该专栏里一篇叫《什么时候会使用内部临时表?》的文章。关键词总结:union 执行流程(union 语句的 explain 结果、union 语句的执行流程)、group by 执行流程(group by 语句的 explain 三个信息、grou...原创 2020-03-10 05:17:54 · 344 阅读 · 0 评论 -
03.09 Day 50 - join 语句
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 50 天,也是我第 112 次进行这种操作。今天我温习了该专栏里叫《到底可不可以使用join?》、《join语句怎么优化?》的文章。关键词总结:两类 join 语句使用问题、Index Nested-Loop Join、Simple Nested-Loop Join、Block Nested-Loop...原创 2020-03-09 04:32:37 · 193 阅读 · 0 评论 -
03.08 Day 49 - 重温 Day 44-45
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 49 天,也是我第 111 次进行这种操作。今天我温习了该专栏里叫《误删数据后除了跑路,还能怎么办?》、《为什么还有kill不掉的语句?》的文章。关键词总结:MySQL 误删数据分类、误删行(Flashback 恢复数据的前提、恢复时对单个事务的具体处理、不建议的做法、事前预防建议)、误删库 / 表(...原创 2020-03-08 04:45:35 · 121 阅读 · 0 评论 -
03.07 Day 48 - 重温 Day 42-43
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 48 天,也是我第 110 次进行这种操作。今天我温习了该专栏里叫《MySQL有哪些“饮鸩止渴”提高性能的方法?》、《如何判断一个数据库是不是出问题了?》的文章。关键词总结:短连接风暴(另外两种有损的方法(先处理持有连接的空闲线程、减少连接过程的消耗))、慢查询性能问题(慢查询的三种可能(索引没有设计...原创 2020-03-07 03:57:38 · 113 阅读 · 0 评论 -
03.06 Day 47 - 重温 Day 39-41
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 47 天,也是我第 109 次进行这种操作。今天我温习了该专栏里叫《主库出问题了,从库怎么办?》、《读写分离有哪些坑?》、《为什么这些SQL语句逻辑相同,性能却差异巨大?》的文章。关键词总结:基于位点的主备切换(change master 命令的六个参数、取同步位点的方法、在 T 时刻原主库执行完 i...原创 2020-03-06 04:40:26 · 145 阅读 · 0 评论 -
03.05 Day 46 - 重温 Day 34-36
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 46 天,也是我第 108 次进行这种操作。今天我温习了该专栏里叫《MySQL是怎么保证主备一致的?》、《MySQL 是怎么保证高可用的?》、《备库为什么会延迟好几个小时?》的文章。关键词总结:MySQL 主备的基本原理(将备库设置成只读的几个考虑、备主库维持的长连接事务日志同步完整过程)、binlo...原创 2020-03-05 02:42:25 · 176 阅读 · 0 评论 -
03.04 Day 45 - kill 命令
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 45 天,也是我第 107 次进行这种操作。今天我温习了该专栏里一篇叫《为什么还有kill不掉的语句?》的文章。关键词总结:收到 kill 以后,线程做什么?(执行 kill query thread_id 时处理 kill 命令的线程做的两件事、发信号隐含的三层意思、执行 set global in...原创 2020-03-04 03:24:39 · 184 阅读 · 0 评论 -
03.03 Day 44 - 误删数据
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 44 天,也是我第 106 次进行这种操作。今天我温习了该专栏里一篇叫《误删数据后除了跑路,还能怎么办?》的文章。关键词总结:MySQL 误删数据分类、误删行(Flashback 恢复数据的前提、恢复时对单个事务的具体处理、不建议的做法、事前预防建议)、误删库 / 表(定期全量备份并有 binlog ...原创 2020-03-03 03:46:49 · 310 阅读 · 0 评论 -
03.02 Day 43 - MySQL 实例状态检测
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 43 天,也是我第 106 次进行这种操作。今天我温习了该专栏里一篇叫《如何判断一个数据库是不是出问题了?》的文章。关键词总结:select 1 判断(innodb_thread_concurrency 默认值、innodb_thread_concurrency 建议值、真正的 CPU 杀手)、查表判...原创 2020-03-02 03:34:52 · 223 阅读 · 0 评论 -
03.01 Day 42 - 提高性能的紧急手段
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 42 天,也是我第 105 次进行这种操作。今天我温习了该专栏里一篇叫《MySQL有哪些“饮鸩止渴”提高性能的方法?》的文章。关键词总结:短连接风暴(另外两种有损的方法(先处理持有连接的空闲线程、减少连接过程的消耗))、慢查询性能问题(慢查询的三种可能(索引没有设计好、语句没有写好、MySQL 选错了...原创 2020-03-01 04:50:39 · 193 阅读 · 0 评论 -
02.29 Day 41 - 对索引字段的函数操作
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 41 天,也是我第 104 次进行这种操作。今天我温习了该专栏里一篇叫《为什么这些SQL语句逻辑相同,性能却差异巨大?》的文章。关键词总结:案例一:条件字段函数操作(放弃走树索引功能的原因)、案例二:隐式类型转换(类型转换问题、看 select “10” > 9 的结果的方法)、案例三:隐式字符...原创 2020-02-29 10:20:33 · 229 阅读 · 0 评论 -
02.28 Day 40 - 读写分离
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 40 天,也是我第 103 次进行这种操作。今天我温习了该专栏里一篇叫《读写分离有哪些坑?》的文章。关键词总结:客户端/直连/带 proxy 读写分离架构特点、过期读处理方案、强制走主库方案(两类查询)、sleep 方案(该方案的不精确问题)、判断主备无延迟方案(确保备库无延迟的三种做法)、配合 se...原创 2020-02-28 04:02:03 · 243 阅读 · 0 评论 -
02.27 Day 39 - 一主多从的主备切换流程
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 37 天,也是我第 102 次进行这种操作。今天我温习了该专栏里一篇叫《主库出问题了,从库怎么办?》的文章。关键词总结:基于位点的主备切换(change master 命令的六个参数、取同步位点的方法、在 T 时刻原主库执行完 insert 语句并将 binlog 传给新主库和从库后瞬间掉电的状态、切...原创 2020-02-27 03:55:12 · 361 阅读 · 0 评论 -
02.26 Day 36 - 多线程复制策略
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 36 天,也是我第 101 次进行这种操作。今天我温习了该专栏里一篇叫《备库为什么会延迟好几个小时?》的文章。关键词总结:多线程复制分发时的基本要求、MySQL 5.5 版本的并行复制策略(按表分发策略(事务分配规则、事务分发时跟所有 worker 冲突关系的三种情况)、按行分发策略、两个方案的一些约...原创 2020-02-26 06:05:51 · 183 阅读 · 0 评论 -
02.25 Day 35 - 可靠性优先与可用性优先策略
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 35 天,也是我第 100 次进行这种操作。今天我温习了该专栏里一篇叫《MySQL 是怎么保证高可用的?》的文章。关键词总结:主备延迟(同步有关的时间点、seconds_behind_master 计算方法、主备延迟最直接的表现)、主备延迟的来源(备库机器性能比主库机器差、备库压力大、大事物、导致主备...原创 2020-02-25 04:30:25 · 541 阅读 · 0 评论 -
02.24 Day 34 - binlog 的格式和基本机制
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 34 天,也是我第 99 次进行这种操作。今天我温习了该专栏里一篇叫《MySQL是怎么保证主备一致的?》的文章。关键词总结:MySQL 主备的基本原理(将备库设置成只读的几个考虑、备主库维持的长连接事务日志同步完整过程)、binlog 的三种格式对比(statement、row、mixed)、为什么会...原创 2020-02-24 05:53:48 · 128 阅读 · 0 评论 -
02.23 Day 35 - 重温 Day 30-31
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 35 天,也是我第 98 次进行这种操作。今天我温习了该专栏里叫《怎么最快地复制一张表?》、《如何正确地显示随机消息?》的文章。关键词总结:mysqldump 方法(参数含义、一条 INSERT 语句只插入一行数据、source 客户端命令执行流程)、导出 CSV 文件(使用语句时的注意点、load ...原创 2020-02-23 03:45:37 · 152 阅读 · 0 评论 -
02.22 Day 34 - 重温 Day 28-29
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 34 天,也是我第 97 次进行这种操作。今天我温习了该专栏里叫《我查这么多数据,会不会把数据库内存打爆?》、《为什么表数据删掉一半,表文件大小不变?》的文章。关键词总结:全表扫描对 server 层的影响(取数据和发数据的流程、流程细节、边读边发、Sending to client、查询结果不多的情...原创 2020-02-22 03:30:53 · 177 阅读 · 0 评论 -
02.21 Day 33 - 重温 Day 25-27
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 33 天,也是我第 96 次进行这种操作。今天我温习了该专栏里叫《为什么我的MySQL会“抖”一下?》、《答疑文章(一):日志和索引相关问题》、《MySQL是怎么保证数据不丢的?》的文章。关键词总结:你的 SQL 语句为什么变 “慢” 了(刷脏页 / flush 过程、缓冲池内存页三种状态、刷脏页时影...原创 2020-02-21 04:04:50 · 210 阅读 · 0 评论 -
02.20 Day 32 - 重温 Day 22-24
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 32 天,也是我第 95 次进行这种操作。今天我温习了该专栏里叫《普通索引和唯一索引,应该怎么选择?》、《MySQL 为什么有时候会选错索引?》、《怎么给字符串字段加索引?》的文章。关键词总结:查询过程(普通索引、唯一索引)、更新过程(change buffer 使用条件、目标页在内存中的处理流程、目...原创 2020-02-20 06:17:35 · 182 阅读 · 0 评论 -
02.19 Day 31 - 临时表排序的执行过程
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 31 天,也是我第 94 次进行这种操作。今天我温习了该专栏里一篇叫《如何正确地显示随机消息?》的文章。关键词总结:内存临时表(语句的执行流程、通过慢查询日志验证正确性、每个引擎用来唯一标识数据行的信息、order by rand()/内存临时表/rowid)、磁盘临时表(内存临时表大小、磁盘临时表引...原创 2020-02-19 06:40:48 · 249 阅读 · 0 评论 -
02.18 Day 30 - 表的复制
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 30 天,也是我第 93 次进行这种操作。今天我温习了该专栏里一篇叫《怎么最快地复制一张表?》的文章。关键词总结:mysqldump 方法(参数含义、一条 INSERT 语句只插入一行数据、source 客户端命令执行流程)、导出 CSV 文件(使用语句时的注意点、load data 命令、命令语句执...原创 2020-02-18 04:46:36 · 154 阅读 · 0 评论 -
02.17 Day 29 - 数据库表的空间回收
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 29 天,也是我第 92 次进行这种操作。今天我温习了该专栏里一篇叫《为什么表数据删掉一半,表文件大小不变?》的文章。关键词总结:参数 innodb_file_per_table(推荐做法)、数据删除流程(两种复用的区别、删除数据造成的空洞、插入数据造成的空洞)、重建表(Online DDL 优化过的...原创 2020-02-17 06:56:18 · 142 阅读 · 0 评论 -
02.16 Day 28 - 大查询
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 28 天,也是我第 91 次进行这种操作。今天我温习了该专栏里一篇叫《为什么我只查一行的语句,也执行这么慢?》的文章。关键词总结:查询长时间不返回(等 MDL 锁、等 flush、等行锁)、查询慢。 所学总结: 查询长时间不返回使用 show processlist 命令...原创 2020-02-16 04:41:04 · 239 阅读 · 0 评论 -
02.15 Day 27 - binlog 和 redo log 的写入机制
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 27 天,也是我第 89 次进行这种操作。今天我温习了该专栏里一篇叫《MySQL是怎么保证数据不丢的?》的文章。关键词总结:binlog 的写入机制(write 和 fsync 的时机、通过sync_binlog 值来提升 IO 性能、sync_binlog 在实际业务场景中建议的值)、redo lo...原创 2020-02-15 07:02:52 · 393 阅读 · 0 评论 -
02.14 Day 26 - 日志和索引常见问题
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 26 天,也是我第 87 次进行这种操作。今天我温习了该专栏里一篇叫《答疑文章(一):日志和索引相关问题》的文章。关键词总结:日志相关问题、MySQL 怎么知道 binlog 是完整的?、redo log 和 binlog 是怎么关联起来的?、处于 prepare 阶段的 redo log 加上完整 ...原创 2020-02-14 07:27:33 · 227 阅读 · 0 评论 -
02.13 Day 25 - InnoDB 脏页的控制策略
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 25 天,也是我第 85 次进行这种操作。今天我温习了该专栏里一篇叫《为什么我的MySQL会“抖”一下?》的文章。关键词总结:你的 SQL 语句为什么变 “慢” 了(刷脏页 / flush 过程、缓冲池内存页三种状态、刷脏页时影响性能的原因)、InnoDB 刷脏页的控制策略(InnoDB 刷盘速度参考...原创 2020-02-13 06:27:59 · 163 阅读 · 0 评论 -
02.12 Day 24 - 给字符串加索引
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 24 天,也是我第 83 次进行这种操作。今天我温习了该专栏里一篇叫《怎么给字符串字段加索引?》的文章。关键词总结:如何为邮箱字段建立合理的索引?(创建前缀索引、前缀索引可能产生的问题、建立索引时需要关注的点)、前缀索引对覆盖索引的影响(无法利用覆盖索引)、其他处理方式(倒序存储、使用 hash 字段...原创 2020-02-12 05:26:12 · 188 阅读 · 0 评论 -
02.11 Day 23 - 如何选择索引
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 23 天,也是我第 81 次进行这种操作。今天我温习了该专栏里一篇叫《MySQL 为什么有时候会选错索引?》的文章。关键词总结:优化器逻辑(最优执行方案、综合判断、判断扫描行数、获得索引基数、两种存储索引统计的方式)、索引选择异常和处理(采用 force index 强行选择一个索引、引导 MySQL...原创 2020-02-11 04:37:53 · 187 阅读 · 0 评论 -
02.10 Day 22 - 普通索引与唯一索引
大家好,我是 Snow Hide,作为《MySQL 实战》这个专栏的学员之一,这是我打卡的第 22 天,也是我第 79 次进行这种操作。今天我温习了该专栏里一篇叫《普通索引和唯一索引,应该怎么选择?》的文章。关键词总结:查询过程(普通索引、唯一索引)、更新过程(change buffer 使用条件、目标页在内存中的处理流程、目标页不在内存中的处理流程)、change buffer 的使用场景(...原创 2020-02-10 06:06:45 · 165 阅读 · 0 评论