mysql索引数据结构
2021-03-19 23:29:47 41 举报
MySQL索引是一种用于提高数据库查询速度的数据结构。它可以帮助数据库引擎快速定位到表中的指定数据,而不需要扫描整个表。常见的MySQL索引类型有:B树索引、哈希索引和全文索引等。其中,B树索引是最常用的一种,它能够按照顺序存储数据,并且支持范围查询和排序操作。哈希索引则适用于等值查询的场景,它通过将数据映射到一个哈希值来加速查询。全文索引则主要用于文本搜索,它可以在大量文本数据中快速找到匹配的关键词。使用索引可以提高查询效率,但也会增加写操作的开销,因为每次插入或更新数据时都需要更新相应的索引。因此,在使用索引时需要权衡利弊,根据实际需求进行选择和优化。
作者其他创作
大纲/内容
0x6A
6B
60
data
......
15
20
0x11
id
Cida38北京
56
col1
40
0xAA
联合索引其实就是讲多个字段的值拼接在一起, 组成索引字段索引的使用遵循最左前缀原则, 当前一个字段使用的范围查询, 后一个字段使用不到索引
0x5B
以age为二级索引
29
0x12
0x21
17
50
叶子节点存储的是索引数据 + 数据主键当通过索引查询到数据的时候, 还需要使用拿到的主键值, 从主键索引中获取到数据, 这个操作叫做回表索引顺序与数据行的顺序不一致(非聚集索引)
0x6D
Bobi42广东
Cida38 广东
MyIsam 索引结构
Ali26四川
InnoDB联合索引结构
每个节点的大小是16K;叶子节点含有所有的索引数据(上图展示的数值型索引) + data 叶子节点之间有双向指针(便于范围查询)非叶子节点, 每两个数据之间有一个6B的指针, 指向下一层节点, 该节点存储的是这两个数据之间的数据第一层节点存放在内存中第一层节点存储在内存中, 三层节点可以存储大约2000W数据, 只需要读写两次磁盘索引顺序与数据行的顺序一致(聚集索引)
77
Cida38 四川
0x43
Juny22辽宁
Dick22辽宁
Bobi38四川
InnoDB主键索引结构
索引文件与数据文件分开, 索引中存储的是数据文件对应数据的地址
Yummy20辽宁
InnoDB二级索引结构
收藏
收藏
0 条评论
下一页