Gumihoy
MySQL汇总 MySQL汇总
‍《MySQL索引》 《MySQL锁》 ### 《MySQL实战45讲》    《01 | 基础架构:一条SQL查询语句是如何执行的》    《02 | 日志系统:一条SQL更新语句是如何执行的》    《03
9999-12-31
MySQL索引 MySQL索引
数据库索引是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据                                 —————————— 《维基百科》 索引是存储引擎用于快速找到记录的一种数据结构      
2019-06-12
《MySQL实战45讲》 《MySQL实战45讲》
《01 | 基础架构:一条SQL查询语句是如何执行的》 《02 | 日志系统:一条SQL更新语句是如何执行的》 《03-事务隔离:为什么你改了我还看不见》 《04 | 深入浅出索引(上)》 《05 | 深入浅出索
2019-06-03
09 | 普通索引和唯一索引,应该怎么选择 09 | 普通索引和唯一索引,应该怎么选择
在前面的基础篇文章中,我给你介绍过索引的基本概念,相信你已经了解了唯一索引和普通索引的区别。今天我们就继续来谈谈,在不同的业务场景下,应该选择普通索引,还是唯一索引? 假设你在维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经
2019-06-03
08 | 事务到底是隔离的还是不隔离的 08 | 事务到底是隔离的还是不隔离的
我在第 3 篇文章和你讲事务隔离级别的时候提到过,如果是可重复读隔离级别,事务 T 启动的时候会创建一个视图 read-view,之后事务 T 执行期间,即使有其他事务修改了数据,这个事务看到的仍然跟在启动时看到的一样。也就是说,一个在可重
2019-06-03
07 | 行锁功过:怎么减少行锁对性能的影响 07 | 行锁功过:怎么减少行锁对性能的影响
在上一篇文章中,我跟你介绍了 MySQL 的全局锁和表级锁,今天我们就来讲讲 MySQL 的行锁。 MySQL 的行锁是在引擎层由各个引擎自己实现的。但并不是所有的引擎都支持行锁,比如 MyISAM 引擎就不支持行锁。不支持行锁意味着并发控
2019-06-03
06 | 全局锁和表锁:给表加个字段怎么有这么多阻碍 06 | 全局锁和表锁:给表加个字段怎么有这么多阻碍
今天我要跟你聊聊 MySQL 的锁, 数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。 根据加锁的范围,MySQL 里面的锁大致可
2019-06-03
05 | 深入浅出索引(下) 05 | 深入浅出索引(下)
在上一篇文章中,我和你介绍了 InnoDB 索引的数据结构模型,今天我们再继续聊聊跟 MySQL 索引有关的概念。 在开始这篇文章之前,我们先来看一下这个问题: 在下面这个表 T 中,如果我执行 select * from T where
2019-06-03
04 | 深入浅出索引(上) 04 | 深入浅出索引(上)
提到数据库索引,我想你并不陌生,在日常工作中会经常接触到。比如某一个 SQL 查询比较慢,分析完原因之后,你可能就会说“给某个字段加个索引吧”之类的解决方案。但到底什么是索引,索引又是如何工作的呢?今天就让我们一起来聊聊这个话题吧。 数据库
2019-06-03
03 | 事务隔离:为什么你改了我还看不见 03 | 事务隔离:为什么你改了我还看不见
提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。 最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱。转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作
2019-06-03
02 | 日志系统:一条SQL更新语句是如何执行的 02 | 日志系统:一条SQL更新语句是如何执行的
前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。 那么,一条更新语句的执行流程又是怎样的呢?之前你可能经常
2019-06-03
01 | 基础架构:一条SQL查询语句是如何执行的 01 | 基础架构:一条SQL查询语句是如何执行的
这是专栏的第一篇文章,我想来跟你聊聊 MySQL 的基础架构。我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于 MySQL 的学习也是这样。平时我们使用数据库,看到的通常都是一个整
2019-06-03
1 / 5