-
分类于
MySQL
发表于2024-03-14 21:21
### 索引的出现其实就是为了提高数据查询的效率,就像目录一样
### 索引模型
- 提高读写效率的数据结构,哈希表、有序数组、搜索树
哈希表是以key-value存储数据结构, 哈希的思路:把值放在数组里,用一个哈希函数将key换算成一个确定位置,然后把value放在数组的这个位置。
(
1.这个地方有个把key计算成确定的位置,最初是取余数,把余数相同的放到同一位置,这...
阅读全文 »
-
分类于
MySQL
发表于2024-03-14 21:21
#### 开篇点题
在下面这个表 T 中,如果我执行 select * from T where k between 3 and 5,需要执行几次树的搜索操作,会扫描多少行?
答案: 会执行5次树搜索操作,k树会扫描3行,3 5 6, 3和5搜索并回表
回表:从辅助索引回到主键索引树搜索的过程,我们称为回表。
#### 索引优化,避免回表
覆盖索引:
如果执行的语句是 selec...
阅读全文 »
-
分类于
MySQL
标签
全局锁和表锁
发表于2024-03-11 21:50
### 锁的初衷 - 处理并发问题
当并发访问出现的时候,数据库需要合理地控制资源的访问规则。锁就是用来实现访问规则的重要数据结构。
根据加锁的范围,分为三种:全局锁、表级锁、行锁(Innodb支持)。
### 全局锁
添加全局读锁: ``` flush tables with read lock```
执行完该命令后会让库处于只读状态,其他线程以下的语句会被阻塞:增删改、建表、修表...
阅读全文 »