![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
《MySQL实战45讲》
文章平均质量分 91
丁奇老师《MySQL实战45讲》课程学习笔记
strongkk
当你变得足够优秀了你想要的自然会来,否则你将永远得不到
展开
-
MySQL实战45讲课后问题
但是,重建主键的过程不合理。但是,学过本章内容的小吕又纳闷了,既然主键包含了a、b这两个字段,那意味着单独在字段c上创建一个索引,就已经包含了三个字段了呀,为什么要创建“ca”“cb”这两个索引?现在,我要把所有“字段c和id值相等的行”的c值清零,但是却发现了一个“诡异”的、改不掉的情况。解答:是在分析器阶段,分析器阶段会对要执行的sql进行词法分析和语法分析,mysql会识别出sql语句里面的每个字符串分别是什么,代表什么,所以是在分析器阶段。我的问题是,对于上面这两个重建索引的作法,说出你的理解。原创 2023-12-20 22:40:17 · 941 阅读 · 0 评论 -
MySQL实战45讲-第8讲
事务到底是隔离还是不隔离的?在MySQL里,有两个"视图"的概念:一个是view。它是是一个用查询语句定义的虚拟表,在调用的时候执行查询语句并生成结果。创建视图的语法是 create view,而它的查询方法与表一样。另一个是 InnoDB 在实现 MVCC 时用到的一致性读视图,即 consistent read view,用于支持 RC(Read Committed,读提交)和 RR(Repeatable Read,可重复度)隔离级别的实现。它没有物理结构,用来在事务执行期间定义“我能看到什么数原创 2021-10-10 12:35:57 · 104 阅读 · 0 评论 -
MySQL实战45讲-第7讲
行锁功过:怎么减少行锁对性能的影响?MySQL 的全局锁和表级锁是在Server层实现的,而行锁是在引擎层由各个引擎自己实现的,但并不是所有的引擎都支持行锁,比如MyISAM 引擎就不支持行锁。行锁定义:顾名思义,行锁就是针对数据表中行记录的锁。这很好理解,比如事务 A 更新了一行,而这时候事务 B 也要更新同一行,则必须等事务 A 的操作完成后才能进行更新。一、两阶段锁协议1、什么是两阶段锁协议?如下例子,事务 B 的 update 语句执行时会是什么现象呢?这个问题的结论取决于事务 A原创 2021-09-20 16:01:44 · 82 阅读 · 0 评论 -
MySQL实战45讲-第6讲
1、锁的类型根据加锁的范围,MySQL里面的锁大致分为全局锁、表级锁和行锁三类。原创 2021-09-20 13:33:52 · 1024 阅读 · 0 评论 -
MySQL实战45讲-第5讲
深入浅出索引(下)在开始这篇文章之前,我们先来看一下这个问题:在下面这个表 T 中,如果我执行 select * from T where k between 3 and 5,需要执行几次树的搜索操作,会扫描多少行?下面是这个表的初始化语句。mysql> create table T ( ID int primary key, k int NOT NULL DEFAULT 0, s varchar(16) NOT NULL DEFAULT '', index k(k)转载 2021-09-19 13:51:59 · 105 阅读 · 0 评论 -
MySQL实战45讲-第4讲
深入浅出索引(上)一、为什么要有索引?一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。一本 500页的书,如果你想快速找到其中的某一个知识点,在不借助目录的情况下,那我估计你可得找一会儿。同样,对于数据库的表而言,索引其实就是它的“目录”。二、索引是什么样的?索引常见的数据模型有三种,它们分别是哈希表、有序数组和搜索树。1 、哈希表哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的值即 key,就可以找到其对应的值即 Value。哈希的原创 2021-09-18 20:06:54 · 144 阅读 · 0 评论 -
MySQL实战45讲-第3讲
事务隔离:为什么你改了我还看不见?事务就是保证一组数据库操作,要么全部成功,要么全部失败。在MySQL中,事务支持是在引擎层实现的。1、隔离性与隔离级别事务的四大特性:ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)当数据库上有多个事务同时执行的时候,就可能出现脏读(dirty read)、不可重复读(non reapeatable read)、幻读(phantom read)的问题,为了解决这些问题,就有了“隔离级别原创 2021-08-20 19:59:57 · 73 阅读 · 0 评论 -
MySQL实战45讲-第1讲
MySQL实战45讲是极客时间的丁奇老师的一门课程,从本文章开始我将记录此课程每讲的学习笔记。详细内容请参见:极客时间基础架构:一条SQL查询语句是如何执行的?1、MySQL的基本架构示意图MySQL的基本架构示意图如下,该图描述了SQL语句在MySQL的各个功能模块的执行过程。大体来说,MySQL可以分为Server层和存储引擎层。Server层涵盖MySQL的大多数核心服务功能,以及所有内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图转载 2021-08-11 22:49:39 · 538 阅读 · 0 评论 -
MySQL实战45讲-第2讲
日志系统:一条SQL更新语句是如何执行的?原创 2021-08-18 16:11:24 · 81 阅读 · 0 评论