MySQL实战45讲是极客时间的丁奇老师的一门课程,从本文章开始我将记录此课程每讲的学习笔记。 基础架构:一条SQL查询语句是如何执行的?1、MySQL的基本架构示意图MySQL的基本架构示意图如下,该图描述了SQL语句在MySQL的各个功能模块的执行过程。 大体来说,MySQL可以分为Server层和存储引擎层。Server层涵盖MySQL的大多数核心服务功能,以及所有内置函数(如日期、时间、数
转载
2023-12-18 23:54:44
125阅读
丁奇老师《MySQL实战45讲》的学习小结第一篇:基础概念第二篇:运维管理第三篇:合理使用MySQL题目很大,写得出来的很少 -_-!把自己的理解梳理出一个提纲,作为一个速查手册吧。第一部分:sql优化1. 了解一个sql如何被执行最重要的是搞清楚MySQL是如何执行一个sql命令的。explain命令最简单,也是最常用的:explain命令。看看执行次序,看看是否用了索引、哪个索引、要扫描多少行
转载
2023-12-11 13:49:45
76阅读
废话不说经历一周,在windows上搭建mysql多个实例,找了好多资料,核心是改配置文件但是就是不行。最终实现分享出来。主要参考https://www.jb51.net/article/169521.htm此篇博客,在此感谢这位博主。1、下载对应版本免安装MySQL我用的是5.5.48版本此处提供下载网盘地址:mysql5.5.48 提取码:5oy6。2、解压到D:\my
转载
2024-08-29 19:41:17
202阅读
一、引子今天是大年三十,在开始我们今天的学习之前,我要先和你道一声春节快乐!在上一篇文章中,我们在优化 join 查询的时候使用到了临时表。当时,我们是这么用的:create temporary table temp_t like t1;
alter table temp_t add index(b);
insert into temp_t select * from t2 where b>
转载
2024-05-02 16:11:02
30阅读
数据库45讲 01|基础架构:一条sql查询语句是如何执行的 连接器 权限 -> wait_timeout默认8小时 &
转载
2023-09-05 13:48:01
199阅读
课程目录:x01.基础架构:一条SQL查询语句是如何执行的?.html 01.基础架构:一条SQL查询语句是如何执行的?.mp3 01.基础架构:一条SQL查询语句是如何执行的?.pdf 02.日志系统:一条SQL更新语句是如何执行的?.html 02.日志系统:一条SQL更新语句是如何执行的?.mp3 02.日志系统:一条SQL更新语句是如何执行的?.pdf 03.事务隔离:为什么你改了我还看不
转载
2023-09-28 13:42:43
65阅读
01 | 基础架构:一条SQL查询语句是如何执行的?mysql> select * from T where ID=10;大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。Server层: 包括连接器,查询缓存,分析器,优化器和执行器等。所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。存储引擎层: 负责数据的存储和提取,支持 InnoDB、MyISAM、M
转载
2024-03-14 23:24:52
25阅读
? 本文目录? 04 | 深入浅出索引(上)? 什么是索引?? 索引的常见模型⭐️ 哈希表⭐️ 有序数组⭐️ 二叉搜索树? InnoDB 的索引模型❓ 基于主键索引和普通索引的查询有什么区别? 索引维护? 案例❓ 比如字符串类型的身份证号业务逻辑字段做主键,还是用自增字段做主键呢❓ 有没有什么场景适合用业务字段直接做主键的呢? 小结❓ 思考题? 本节知识总结❓ 面试题⭐️ “N叉树”的N值在My
转载
2023-10-17 12:27:12
67阅读
05 | 深入浅出索引(下)覆盖索引:如果查找的列本身就在二级索引上,那么就不要回表了,这样子的索引叫做覆盖索引,通常用来减少回表的次数以提高性能。联合索引:使用多个字段组合的索引,假设有联合索引(a,b),那么在索引树中它会先根据a的大小进行排序,如果有相同值的a在按照b的大小进行排序。最左前缀:可以是联合索引的最左N个字段,比如说有联合索引(a,b,c),那么等值查询条件是a = 1的时候会用
转载
2024-01-08 15:45:07
65阅读
这个专栏是数据库大神、前阿里资深技术专家丁奇写的,
原创
2021-07-13 11:05:02
1058阅读
阅读
原创
2022-08-03 06:51:14
50阅读
《MySQL实战45讲》学习记录(持续更新)1 | MySQL 中一条查询语句的执行过程2 | MySQL 中一条更新语句的执行过程事务索引浅析锁:全局锁、表级锁、行级锁事务到底是隔离的还是不隔离的?普通索引和唯一索引的异同MySQL为什么有时候会选错索引?怎么给字符串字段加索引?MySQL “抖”一下为什么表数据删掉一半,表文件大小不变?count(*)15 | 答疑文章(1)16 | "Or
转载
2023-12-07 18:26:25
131阅读
MySQL实战45讲这是专栏的第一篇文章,我想来跟你聊聊 MySQL 的基础架构。我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于 MySQL 的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个 ID 字段,在执行下面这个查询语句时:mysql> select * from T wher
转载
2021-05-08 11:55:53
678阅读
2评论
学习
原创
2021-07-13 11:41:29
760阅读
源码安装完MySQL之后,使用Debug模式启动mysqld --debug --console &后,mysql> create database wxb;Query OK, 1 row affected (0.01 sec)mysql> use wxb;Database changedmysql
原创
2022-08-20 00:20:27
269阅读
文章目录00.问题分类01.一条SQL查询语句是如何执行的?02.一条SQL更新语句是如何执行的?03.事务隔离:为什么你改了我还看不见?04.深入浅出索引(上)05.深入浅出索引(下)06.全局锁和表锁:给表加个字段怎么有这么多阻碍07.行锁功过:怎么减少行锁对性能的影响?08.事务到底是隔离还是不隔离的09.普通索引和唯一索引,该怎么选择?10.MySQL为什么有时候会选错索引11.怎么给字
转载
2023-08-28 14:09:33
81阅读
一、本节概述我在上一篇文章最后,给你留下的问题是怎么在两张表中拷贝数据。如果可以控制对源表的扫描行数和加锁范围很小的话,我们简单地使用 insert … select 语句即可实现。当然,为了避免对源表加读锁,更稳妥的方案是先将数据写到外部文本文件,然后再写回目标表。这时,有两种常用的方法。接下来的内容,我会和你详细展开一下这两种方法。为了便于说明,我还是先创建一个表 db1.t,并插入 1000
转载
2023-09-07 22:59:12
533阅读
目录备库延迟MySQL 5.5版本的并行复制策略(mysql45讲作者自己实现的)按表分发策略按行分发策略MySQL 5.6版本的并行复制策略MariaDB的并行复制策略MySQL 5.7的并行复制策略MySQL 5.7.22的并行复制策略一主多从的切换正确性基于位点的主备切换GTID_MySQL 5.6基于GTID的主备切换GTID和在线DDL读写分离强制走主库方案Sleep 方案判断主备无延迟
转载
2023-11-29 11:39:27
104阅读
本系列笔记学习MySQL 45讲,思维导图来源网络,侵删。总览图1.sql执行过程先查询缓存一般不建议使用查询缓存,因为一个表的更新会导致这个表的缓存结果失效,重复的建立缓存并不是高效的使用办法。除非这个表不会经常变动,如系统配置表query_cache_type=demand, 默认的都不使用查询缓存 使用查询缓存: SQL_CACHE显式指定没命中缓存会去执行语句分析器做词法分析(分析每个字符
转载
2024-10-21 18:35:14
12阅读
06 | 全局锁和表锁:给表加个字段怎么有这么多阻碍全局锁:对整个数据库实例加读锁,命令是Flush tables with read lock,使用这个命令后其他线程的增删改、修改表结构、建表将会被阻塞(使用unlock tables可以解除)。主要用来做全局备份。为什么使用全局锁而不要使用全库只读(set global readonly = true):一方面是readonly通常会被用来做其
转载
2024-01-14 21:06:16
103阅读