索引数据类型
二叉树
红黑树
Hash表
B-tree (B+tree)
btree
---> 与B+tree的区别:
因为没有末尾节点的指针(双向指针) 每次都需要从跟节点再次进行定位
(B+tree): mysql
索引两种 btree 和hash(特殊)
hash在范围查询面前 不行 只能是等于单个值
b+tree 查找范围的原因 叶子节点依次递增, 节点末尾有个指针 会指到 后面节点
同时 指针是双向的 末尾节点会连接最开始的节点 无论是大于还是小于 都支持
------------------------------------
细节等待完善
数据库表常用的两种引擎
MyISAM存储引擎
Innodb
这些数据存储在数据库的data目录下
myisam 会有三种后缀
而innodb 会有两种 索引和数据在一起
myisam是非聚集索引(稀疏索引)
-> B+tree 叶子部分存的是一个地址
innodb是聚集索引 (聚簇索引)
-> 叶子部分直接存储数据
问: innodb表 为什么必须有主键 并且推荐整型的自增主键 (dba会规范)
不要使用uuid作为主键自增
没有主键可以建, 但是 b+tree主键索引去组织整体表结构
注意: 没有主键mysql表会自动添加一个字段作为索引(都不重复的字段) 维护整体表结构(不要加重mysql工作)
dba建议多用联合索引
那么联合索引的底层存储结构长啥样...
等待下篇