一、什么是索引
场景:优化慢sql查询
定义:索引是帮助Mysql高效获取数据的排好序的数据结构
索引存储在哪里:
a. 安装目录/data目录中,db库与data数据文件一一对应.
b. 库文件夹下每张表都对应多个文件,文件根据创建表时所选定的存储引擎的不同而不同:
MyISAM:
dbtable.frm存储表定义的结构,
dbtable.MYD存储表数据,
dbtable.MYI存储索引(默认是主键)
InnoDB:
dbtable.frm 存储表结构
dbtable.ibd 存储索引+数据
索引的底层数据结构:
常用索引的数据结构有:
二叉树(红黑树),
HASH,
BTREE(mysql使用B+TREE来存储索引,B+ binarysearch trees)
二叉树