10 2022 档案
MySQL行锁
摘要:MySQL行锁 该文摘抄自林晓斌老师的文章 MySQL 的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁,比如 MyISAM 引擎就不支持行锁。不支持行锁意味着并发控制只能使用表锁,对于这种引擎的表,同一张表上任何时刻只能有一个更新在执行,这就会影响到业务并发度。InnoDB 是支
阅读全文
MySQL全局锁和表锁
摘要:MySQL全局锁和表锁 该文摘抄自林晓斌老师的文章 数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构 根据加锁的范围,MySQL里面的锁大致可以分成全局锁、表级锁和行锁三类 这里需要说明的是,
阅读全文
MySQL索引(下)
摘要:MySQL索引(下) 该文摘抄自林晓斌老师的文章 在上一篇文章中,介绍了 InnoDB 索引的数据结构模型,今天我们再继续聊聊跟 MySQL 索引有关的概念 在开始这篇文章之前,我们先来看一下这个问题: 在下面这个表T中,如果我执行 select * from T where k between 3
阅读全文
MySQL索引(上)
摘要:MySQL索引(上) 该文摘抄自林晓斌老师的文章 索引是一种数据结构,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。一本500页的书,如果你想快速找到其中的某一个知识点,在不借助目录的情况下,那我估计你可得找一会儿。同样,对于数据库的表而言,索引其实就是它的"目录" 索引的常见模型 索
阅读全文
MySQL事务隔离
摘要:MySQL事务隔离 该文摘抄自林晓斌老师的文章 提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱 转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作必须保证是一体
阅读全文
MySQL日志系统
摘要:MySQL日志系统 该文摘抄自林晓斌老师的文章 之前你可能经常听 DBA 同事说,MySQL 可以恢复到半个月内任意一秒的状态,惊叹的同时,你是不是心中也会不免会好奇,这是怎样做到的呢 我们还是从一个表的一条更新语句说起,下面是这个表的创建语句,这个表有一个主键 ID 和一个整型字段 c: mysq
阅读全文
MySQL基础架构及一条SQL查询语句是如何执行的
摘要:MySQL 基础架构及一条SQL查询语句是如何执行的 该文摘抄自林晓斌老师的文章 MySQL 的基本架构示意图,从中你可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程 大体来说,MySQL 可以分为 Server 层和存储引擎层两部分 Server 层包括连接器、查询缓存、分析
阅读全文