Skip to content

Commit 98e956c

Browse files
authored
Update 数据库-MySQL.md
1 parent dddae3d commit 98e956c

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

MD/数据库-MySQL.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ MyISAM相对简单所以在效率上要优于InnoDB。如果系统插入和查
6161

6262
[https://www.jianshu.com/p/f5ff017db62a](https://www.jianshu.com/p/f5ff017db62a)
6363

64+
### MVVC
65+
https://tech.meituan.com/2014/08/20/innodb-lock.html
66+
6467
### 索引
6568
#### 原理
6669
聚集索引:数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,所以一个表中只能拥有一个聚集索引。叶子结点即存储了真实的数据行,不再有另外单独的数据页
@@ -75,6 +78,11 @@ MyISAM相对简单所以在效率上要优于InnoDB。如果系统插入和查
7578

7679
B+树的高度如何计算?在Linux里,每个页默认4KB,假设索引的是8B的long型数据,每个key后有个页号4B,还有6B的其他数据(参考《MySQL技术内幕:InnoDB存储引擎》P193的页面数据),那么每个页可以索引4KB/(8B+4B+6B)=227个key。在高度h=3时,s=227^3=1100万。通常来说,索引树的高度在2~4。
7780

81+
B与B+区别:
82+
1. b+树的中间节点不保存数据,所以磁盘页能容纳更多节点元素;
83+
2. b+树查询必须查找到叶子节点,b树只要匹配到即可不用管元素位置,因此b+树查找更稳定
84+
3. 对于范围查找来说,b+树只需遍历叶子节点链表即可,b树却需要重复地中序遍历
85+
7886
#### 优化
7987
如何选择合适的列建立索引?
8088

0 commit comments

Comments
 (0)