mysql索引原理

1.B树和b+树区别?
B树
mysql索引原理_第1张图片
B+树
mysql索引原理_第2张图片
show index from t1;
查看索引
innodb里面使用页来存放数据, 一个页单位是16kb
mysql索引原理_第3张图片
一般建议直接采用自增的字段作为主键。
mysql索引原理_第4张图片
mysql索引原理_第5张图片
专门用一个结构存放页表大小内容, 这个16kb的结构,可以存下很多结构。
一个指针6字节+一个数字4字节=10字节
16*1024 / 10 = 1638 个指向页的结构。
保证b+树最多2层。

数据页和索引页,
索引页就是聚集索引,主键索引。

全表扫描实际上就是从左往右一个页一个页查找的流程。

联合索引
create index idx_t1_bcd on t1(b,c,d)
以上联合索引实际数据层存入的是联合字段的内容,
mysql索引原理_第6张图片
然后也会另外存入主键的内容,
根据联合索引找到主键, 然后根据主键去主键索引查数据的过程就称为回表

最左前缀原则。
覆盖索引, 直接走索引就可以拿到指定字段内容。
varchar类型索引, 如果没有用到对应类型查询,则不会走索引。

你可能感兴趣的:(mysql,mysql,数据库)